5 Commits
0.8.0 ... 0.8.2

Author SHA1 Message Date
Daniel Bauer
1644899116 bump version 2024-12-17 19:46:30 +01:00
Daniel Bauer
1debbb51f2 remove unused styles.css 2024-12-17 19:46:30 +01:00
Daniel Bauer
dd86b55bed chore: remove debug statements 2024-12-17 19:43:32 +01:00
Daniel Bauer
8240045641 fix: index not building on plugin enabling 2024-12-17 19:36:20 +01:00
Daniel Bauer
2dae1175f8 fix: indexing not working if there are non-markdown files 2024-12-17 18:47:41 +01:00
8 changed files with 20 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
{
"id": "dataview-autocompletion",
"name": "Dataview Autocompletion",
"version": "0.8.0",
"version": "0.8.2",
"minAppVersion": "0.15.0",
"description": "Adds autocompletion to Dataview metadata fields",
"author": "Daniel Bauer",

View File

@@ -1,6 +1,6 @@
{
"name": "obsidian-dataview-autocompletion",
"version": "0.8",
"version": "0.8.2",
"description": "This is a plugin for Obsidian that provides autocompletion for Dataview metadata fields",
"main": "main.js",
"scripts": {

View File

@@ -14,10 +14,6 @@ const createBaseConfig = (outdir) => ({
src: "manifest.json",
dest: outdir,
},
{
src: "styles.css",
dest: outdir,
},
],
}),
),

View File

@@ -159,6 +159,8 @@ export class DataviewSuggester extends EditorSuggest<String> {
}
const page = dataviewApi.page(file.path);
if (page === undefined) continue; // not a markdown file
const fields = Object.keys(page)
.filter((k) => k !== "file")
.map((k) => [k, page[k]]);
@@ -218,6 +220,8 @@ export class DataviewSuggester extends EditorSuggest<String> {
const updateCompositeValues = [];
const page = getAPI(this.app).page(file.path);
if (page === undefined) return; // not a markdown file
const fields = Object.keys(page)
.filter((k) => k !== "file")
.map((k) => [k, page[k]]);
@@ -297,13 +301,12 @@ export class DataviewSuggester extends EditorSuggest<String> {
for (const value of this.suggestionsRefs.get(file.path)!) {
this.suggestionsRefCount.set(value, this.suggestionsRefCount.get(value)! - 1);
if (this.suggestionsRefCount.get(value) === 0) {
console.debug("deleting value from suggestion index", value);
this.suggestionsList.splice(this.suggestionsList.indexOf(value), 1);
}
}
this.suggestionsRefs.delete(file.path);
} else {
console.warn("Unknown update type:", type, file, oldPath);
console.debug("Unknown update type:", type, file, oldPath);
}
}
}

View File

@@ -1,6 +1,6 @@
import { App, Plugin, PluginSettingTab, Setting, TFile } from "obsidian";
import { DataviewSuggester } from "./DataviewSuggester";
import { getAPI } from "obsidian-dataview";
import { getAPI, isPluginEnabled } from "obsidian-dataview";
import { SettingsTab } from "./SettingsTab";
interface DataviewAutocompleteSettings {
@@ -15,18 +15,19 @@ const DEFAULT_SETTINGS: DataviewAutocompleteSettings = {
export default class DataviewAutocompletePlugin extends Plugin {
settings: DataviewAutocompleteSettings;
suggester: DataviewSuggester | undefined;
suggester: DataviewSuggester;
async onload() {
await this.loadSettings();
this.addSettingTab(new SettingsTab(this.app, this));
this.suggester = new DataviewSuggester(this, 10, true, true);
this.registerEditorSuggest(this.suggester);
this.registerEvent(
// @ts-ignore
this.app.metadataCache.on("dataview:index-ready", () => {
if (this.suggester !== undefined) {
this.suggester.onDataviewIndexReady();
}
}),
);
@@ -35,24 +36,14 @@ export default class DataviewAutocompletePlugin extends Plugin {
// @ts-ignore
"dataview:metadata-change",
(type: string, file: TFile, oldPath?: string) => {
if (this.suggester !== undefined) {
this.suggester.onDataviewMetadataChange(type, file, oldPath);
}
},
),
);
this.app.workspace.onLayoutReady(() => {
// @ts-ignore
if (!Object.keys(this.app.plugins.plugins).includes("dataview")) {
console.warn("Dataview plugin not installed. Dataview Autocompletion plugin will not work.");
} else {
// register suggester, requires dataview to be loaded first.
console.log("Registering dataview autocompletion suggester");
this.suggester = new DataviewSuggester(this, 10, true, true);
this.registerEditorSuggest(this.suggester);
if (isPluginEnabled(this.app) && getAPI(this.app)?.index.initialized) {
this.suggester.onDataviewIndexReady();
}
});
}
onunload() {}

View File

@@ -1,8 +0,0 @@
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/

View File

@@ -1,5 +1,6 @@
[
"sample-plugin",
"dataview",
"obsidian-dataview-autocompletion"
"obsidian-dataview-autocompletion",
"dataview-autocompletion"
]

View File

@@ -0,0 +1 @@
{"test": "this is a test file"}