* Add autocomplete suggestions for tags/multitext pill inputs Show a completion dropdown with known vault values when entering tags, aliases, or multitext property values in the bulk edit modal. Uses AbstractInputSuggest attached to the pill input element. Suggestions are collected from frontmatter across all vault files, filtered to exclude already-added pills, and normalized consistently with tag input (leading # stripped for matching). * Fix focusout committing partial text when clicking a suggestion When the user clicks a suggestion in the dropdown, the pill container's focusout handler fires before selectSuggestion, which would commit the partially typed query as an unintended pill. Defer the focusout commit via requestAnimationFrame so selectSuggestion can set a flag and clear the input first. * Scope focusout suppression to mouse-triggered suggestions only Keyboard selections are captured by the suggest's Scope before focusout fires, so the didSelect flag is only needed for mouse clicks. Setting it unconditionally left the flag armed after keyboard selections, which could discard the next legitimate blur commit. * Pre-normalize tag values in suggestion list to strip # prefix Known values for tags are now normalized (leading # removed) before being passed to the suggest, so the dropdown never shows # prefixes. Deduplicates after normalization in case both #foo and foo exist. * Re-sort tag suggestions after normalization Stripping # prefixes can break the original alphabetical order from getPropertyValues(). Re-sort after normalize and dedup. * Fix suggestion selection not adding pill The selectSuggestion override replaced the base class implementation that invokes the onSelect callback, so addPill was never called. Use a direct callback property (onValueSelected) called from within selectSuggestion, matching the PropertyNameSuggest pattern. |
||
|---|---|---|
| .github | ||
| reference | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .npmrc | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| esbuild.config.mjs | ||
| eslint.config.mts | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| version-bump.mjs | ||
| versions.json | ||
Bulk Properties
An Obsidian plugin that lets you bulk edit a property across multiple files in your vault.
This plugin uses a checkbox property (default: selected) to track which files are selected. Check the box on the files you want to edit, run the command, and update a property across all of them at once. Works well with Obsidian Bases, where the selection property can be displayed as a checkbox column.
Note: The plugin operates on all files in the vault that have the selection property checked, not just files visible in a particular Base. Make sure to uncheck the selection property on files you don't want to modify.
Usage
- Add a checkbox property (such as
selected) to your notes or Base view. - Check the box on each file you want to bulk edit.
- Open the bulk edit dialog from the ribbon icon, the Bulk edit selected files command, or the editor right-click menu.
- Review the file checklist — uncheck any files you don't want to modify, or re-check files you do.
- Choose a property from the dropdown, enter the new value, and select Update.
- Optionally disable Deselect when finished to keep the files selected after the update.
Commands
- Bulk edit selected files — opens the bulk edit dialog showing all files with the selection property checked. Also available from the editor right-click menu.
- Deselect all files — unchecks the selection property on every file in the vault that has it checked.
- Remove selection property from all files — removes the selection property entirely from every file in the vault that has it.
Context menus
- Editor menu — right-click inside an editor to open the bulk edit dialog.
- File menu — right-click a markdown file in the file explorer or a Base view to toggle its selection. The menu item reads Select for bulk edit or Deselect for bulk edit based on the file's current state.
Setup
Before using the command, configure the plugin in Settings → Bulk Properties:
- Selection property — the name of the checkbox property used to mark files as selected (default:
selected). Autocompletes from existing vault properties. - Properties — add the properties you want to be available for bulk editing, specifying the name and type for each. Property names autocomplete from the vault. Supported types: text, number, checkbox, date, datetime, tags, aliases, multitext.
- Deselect when finished — the default value for the deselect toggle in the bulk edit dialog (default: on).
- Show selection count in status bar — displays the number of selected files in the status bar (default: on). The count updates automatically as you check or uncheck the selection property. Status bar items are not available on mobile.
Manual Installation
Note
These instructions are for installing and testing the plugin prior to its available in the Obsidian Community Plugins list.
Recommended approach is to use the BRAT plugin (available as a Community Plugin) and point it at this repository.
For a fully-manual installation, copy main.js, styles.css, and manifest.json to your vault at .obsidian/plugins/bulk-properties/.