flicker fix
This commit is contained in:
parent
7c0ae92b27
commit
142923be97
1 changed files with 35 additions and 23 deletions
58
src/main.ts
58
src/main.ts
|
@ -1,4 +1,4 @@
|
||||||
import { App, MarkdownView, Modal, Plugin, TFile } from "obsidian";
|
import { MarkdownView, Plugin, TFile } from "obsidian";
|
||||||
import { StatusBar } from "./status-bar";
|
import { StatusBar } from "./status-bar";
|
||||||
|
|
||||||
export default class BetterWordCount extends Plugin {
|
export default class BetterWordCount extends Plugin {
|
||||||
|
@ -19,6 +19,39 @@ export default class BetterWordCount extends Plugin {
|
||||||
this.app.workspace.on("quick-preview", this.onQuickPreview, this)
|
this.app.workspace.on("quick-preview", this.onQuickPreview, this)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.registerInterval(
|
||||||
|
window.setInterval(async () => {
|
||||||
|
let activeLeaf = this.app.workspace.activeLeaf;
|
||||||
|
let files: TFile[] = this.app.vault.getMarkdownFiles();
|
||||||
|
let currentFile: TFile;
|
||||||
|
|
||||||
|
files.forEach((file) => {
|
||||||
|
if ((file.basename = activeLeaf.getDisplayText())) {
|
||||||
|
currentFile = file;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!activeLeaf || !(activeLeaf.view instanceof MarkdownView)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let editor = activeLeaf.view.sourceMode.cmEditor;
|
||||||
|
if (editor.somethingSelected()) {
|
||||||
|
let content: string = editor.getSelection();
|
||||||
|
this.updateWordCount(content);
|
||||||
|
this.recentlyTyped = false;
|
||||||
|
} else if (
|
||||||
|
currentFile &&
|
||||||
|
currentFile.extension === "md" &&
|
||||||
|
!this.recentlyTyped
|
||||||
|
) {
|
||||||
|
const contents = await this.app.vault.read(currentFile);
|
||||||
|
this.updateWordCount(contents);
|
||||||
|
} else if (!this.recentlyTyped) {
|
||||||
|
this.updateWordCount("");
|
||||||
|
}
|
||||||
|
}, 500)
|
||||||
|
);
|
||||||
|
|
||||||
let activeLeaf = this.app.workspace.activeLeaf;
|
let activeLeaf = this.app.workspace.activeLeaf;
|
||||||
let files: TFile[] = this.app.vault.getMarkdownFiles();
|
let files: TFile[] = this.app.vault.getMarkdownFiles();
|
||||||
|
|
||||||
|
@ -32,32 +65,11 @@ export default class BetterWordCount extends Plugin {
|
||||||
async onFileOpen(file: TFile) {
|
async onFileOpen(file: TFile) {
|
||||||
if (file && file.extension === "md") {
|
if (file && file.extension === "md") {
|
||||||
const contents = await this.app.vault.cachedRead(file);
|
const contents = await this.app.vault.cachedRead(file);
|
||||||
|
this.recentlyTyped = true;
|
||||||
this.updateWordCount(contents);
|
this.updateWordCount(contents);
|
||||||
} else {
|
} else {
|
||||||
this.updateWordCount("");
|
this.updateWordCount("");
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeLeaf = this.app.workspace.activeLeaf;
|
|
||||||
if (!activeLeaf || !(activeLeaf.view instanceof MarkdownView)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let editor = activeLeaf.view.sourceMode.cmEditor;
|
|
||||||
|
|
||||||
activeLeaf.view.registerInterval(
|
|
||||||
window.setInterval(async () => {
|
|
||||||
if (editor.somethingSelected()) {
|
|
||||||
let content: string = editor.getSelection();
|
|
||||||
this.updateWordCount(content);
|
|
||||||
this.recentlyTyped = false;
|
|
||||||
} else if (file && file.extension === "md" && !this.recentlyTyped) {
|
|
||||||
const contents = await this.app.vault.cachedRead(file);
|
|
||||||
this.updateWordCount(contents);
|
|
||||||
} else if (!this.recentlyTyped) {
|
|
||||||
this.updateWordCount("");
|
|
||||||
}
|
|
||||||
}, 500)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onQuickPreview(file: TFile, contents: string) {
|
onQuickPreview(file: TFile, contents: string) {
|
||||||
|
|
Loading…
Reference in a new issue