diff --git a/src/commands/commands.ts b/src/commands/commands.ts index b58e2bff..ed9dae38 100644 --- a/src/commands/commands.ts +++ b/src/commands/commands.ts @@ -7,13 +7,13 @@ import openReferenceBeside from './openReferenceBeside'; import openDailyNote from './openDailyNote'; import pasteHtmlAsMarkdown from './pasteHtmlAsMarkdown'; import extractRangeToNewNote from './extractRangeToNewNote'; -import { cacheWorkspace, cleanWorkspaceCache, getWorkspaceCache } from '../utils'; +import { cache } from '../workspace'; const commands = [ vscode.commands.registerCommand('_memo.openDocumentByReference', openDocumentByReference), - vscode.commands.registerCommand('_memo.cacheWorkspace', cacheWorkspace), - vscode.commands.registerCommand('_memo.cleanWorkspaceCache', cleanWorkspaceCache), - vscode.commands.registerCommand('_memo.getWorkspaceCache', getWorkspaceCache), + vscode.commands.registerCommand('_memo.cacheWorkspace', cache.cacheWorkspace), + vscode.commands.registerCommand('_memo.cleanWorkspaceCache', cache.cleanWorkspaceCache), + vscode.commands.registerCommand('_memo.getWorkspaceCache', cache.getWorkspaceCache), vscode.commands.registerCommand('memo.openRandomNote', openRandomNote), vscode.commands.registerCommand('memo.openDailyNote', openDailyNote), vscode.commands.registerCommand('memo.openReferenceInDefaultApp', openReferenceInDefaultApp), diff --git a/src/commands/openDocumentByReference.ts b/src/commands/openDocumentByReference.ts index 1d5de863..52634444 100644 --- a/src/commands/openDocumentByReference.ts +++ b/src/commands/openDocumentByReference.ts @@ -2,8 +2,8 @@ import vscode from 'vscode'; import fs from 'fs'; import path from 'path'; +import { cache } from '../workspace'; import { - getWorkspaceCache, findUriByRef, ensureDirectoryExists, parseRef, @@ -21,7 +21,7 @@ const openDocumentByReference = async ({ }) => { const { ref } = parseRef(reference); - const uri = findUriByRef(getWorkspaceCache().allUris, ref); + const uri = findUriByRef(cache.getWorkspaceCache().allUris, ref); if (uri) { await vscode.commands.executeCommand('vscode.open', uri, showOption); diff --git a/src/commands/openRandomNote.ts b/src/commands/openRandomNote.ts index 28bfc611..f19ca08a 100644 --- a/src/commands/openRandomNote.ts +++ b/src/commands/openRandomNote.ts @@ -1,13 +1,13 @@ import { commands, workspace } from 'vscode'; import fs from 'fs'; -import { getWorkspaceCache } from '../utils'; +import { cache } from '../workspace'; const openRandomNote = async () => { const openedFileNames = workspace.textDocuments.map((d) => d.fileName); - const markdownUris = getWorkspaceCache().markdownUris.filter( - ({ fsPath }) => !openedFileNames.includes(fsPath), - ); + const markdownUris = cache + .getWorkspaceCache() + .markdownUris.filter(({ fsPath }) => !openedFileNames.includes(fsPath)); const randomUriIndex = Math.floor(Math.random() * markdownUris.length); const randomUri = markdownUris[randomUriIndex]; diff --git a/src/commands/openReferenceInDefaultApp.ts b/src/commands/openReferenceInDefaultApp.ts index ddf8ab46..fa0e2f18 100644 --- a/src/commands/openReferenceInDefaultApp.ts +++ b/src/commands/openReferenceInDefaultApp.ts @@ -1,7 +1,8 @@ import open from 'open'; import * as vscode from 'vscode'; -import { getWorkspaceCache, getReferenceAtPosition, findUriByRef } from '../utils'; +import { cache } from '../workspace'; +import { getReferenceAtPosition, findUriByRef } from '../utils'; const openReferenceInDefaultApp = async () => { const activeTextEditor = vscode.window.activeTextEditor; @@ -13,7 +14,7 @@ const openReferenceInDefaultApp = async () => { ); if (refAtPos) { - const uri = findUriByRef(getWorkspaceCache().allUris, refAtPos.ref); + const uri = findUriByRef(cache.getWorkspaceCache().allUris, refAtPos.ref); if (uri) { await open(uri.fsPath); diff --git a/src/extension.ts b/src/extension.ts index 6d141e56..ca5341f6 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; -import { fileWatcher } from './workspace'; +import { fileWatcher, cache } from './workspace'; import { syntaxDecorations, referenceContextWatcher, @@ -16,7 +16,7 @@ import { } from './features'; import commands from './commands'; import logger from './logger'; -import { cacheWorkspace, getMemoConfigProperty, MemoBoolConfigProp, isDefined } from './utils'; +import { getMemoConfigProperty, MemoBoolConfigProp, isDefined } from './utils'; const mdLangSelector = { language: 'markdown', scheme: '*' }; @@ -38,7 +38,7 @@ export const activate = async ( referenceContextWatcher.activate(context); - await cacheWorkspace(); + await cache.cacheWorkspace(); context.subscriptions.push(logger.logger); @@ -47,7 +47,7 @@ export const activate = async ( vscode.languages.registerCodeActionsProvider(mdLangSelector, codeActionProvider), vscode.workspace.onDidChangeConfiguration(async (configChangeEvent) => { if (configChangeEvent.affectsConfiguration('search.exclude')) { - await cacheWorkspace(); + await cache.cacheWorkspace(); } }), ...[ diff --git a/src/features/BacklinksTreeDataProvider.ts b/src/features/BacklinksTreeDataProvider.ts index bad34d2a..451ae52c 100644 --- a/src/features/BacklinksTreeDataProvider.ts +++ b/src/features/BacklinksTreeDataProvider.ts @@ -2,8 +2,8 @@ import vscode, { workspace } from 'vscode'; import path from 'path'; import groupBy from 'lodash.groupby'; +import { cache } from '../workspace'; import { - getWorkspaceCache, containsMarkdownExt, findReferences, trimSlashes, @@ -69,7 +69,7 @@ export default class BacklinksTreeDataProvider implements vscode.TreeDataProvide return []; } - const urisByPathBasename = groupBy(getWorkspaceCache().markdownUris, ({ fsPath }) => + const urisByPathBasename = groupBy(cache.getWorkspaceCache().markdownUris, ({ fsPath }) => path.basename(fsPath).toLowerCase(), ); diff --git a/src/features/ReferenceHoverProvider.ts b/src/features/ReferenceHoverProvider.ts index 5490c863..949f06ed 100644 --- a/src/features/ReferenceHoverProvider.ts +++ b/src/features/ReferenceHoverProvider.ts @@ -2,11 +2,11 @@ import vscode from 'vscode'; import fs from 'fs'; import path from 'path'; +import { cache } from '../workspace'; import { containsImageExt, containsUnknownExt, containsOtherKnownExts, - getWorkspaceCache, getMemoConfigProperty, getReferenceAtPosition, isUncPath, @@ -25,7 +25,7 @@ export default class ReferenceHoverProvider implements vscode.HoverProvider { new vscode.Position(range.end.line, range.end.character - 2), ); - const uris = getWorkspaceCache().allUris; + const uris = cache.getWorkspaceCache().allUris; const foundUri = findUriByRef(uris, ref); if (!foundUri && containsUnknownExt(ref)) { diff --git a/src/features/ReferenceRenameProvider.ts b/src/features/ReferenceRenameProvider.ts index 6a4f73b1..d251ae98 100644 --- a/src/features/ReferenceRenameProvider.ts +++ b/src/features/ReferenceRenameProvider.ts @@ -1,10 +1,10 @@ import { RenameProvider, TextDocument, Position, Range, WorkspaceEdit, Uri } from 'vscode'; import path from 'path'; +import { cache } from '../workspace'; import { getReferenceAtPosition, findUriByRef, - getWorkspaceCache, isLongRef, getWorkspaceFolder, containsMarkdownExt, @@ -33,11 +33,11 @@ export default class ReferenceRenameProvider implements RenameProvider { const unknownUris = containsUnknownExt(ref) ? await findFilesByExts([extractExt(ref)]) : []; const augmentedUris = unknownUris.length - ? sortPaths([...getWorkspaceCache().allUris, ...unknownUris], { + ? sortPaths([...cache.getWorkspaceCache().allUris, ...unknownUris], { pathKey: 'path', shallowFirst: true, }) - : getWorkspaceCache().allUris; + : cache.getWorkspaceCache().allUris; if (!findUriByRef(augmentedUris, ref)) { throw new Error( @@ -69,11 +69,11 @@ export default class ReferenceRenameProvider implements RenameProvider { const unknownUris = containsUnknownExt(ref) ? await findFilesByExts([extractExt(ref)]) : []; const augmentedUris = unknownUris.length - ? sortPaths([...getWorkspaceCache().allUris, ...unknownUris], { + ? sortPaths([...cache.getWorkspaceCache().allUris, ...unknownUris], { pathKey: 'path', shallowFirst: true, }) - : getWorkspaceCache().allUris; + : cache.getWorkspaceCache().allUris; const fsPath = findUriByRef(augmentedUris, ref)?.fsPath; diff --git a/src/features/completionProvider.ts b/src/features/completionProvider.ts index efc2b0ed..bd93df1d 100644 --- a/src/features/completionProvider.ts +++ b/src/features/completionProvider.ts @@ -14,8 +14,8 @@ import path from 'path'; import groupBy from 'lodash.groupby'; import fs from 'fs'; +import { cache } from '../workspace'; import { - getWorkspaceCache, fsPathToRef, containsMarkdownExt, containsImageExt, @@ -46,13 +46,13 @@ export const provideCompletionItems = (document: TextDocument, position: Positio const uris: Uri[] = [ ...(isResourceAutocomplete - ? [...getWorkspaceCache().imageUris, ...getWorkspaceCache().markdownUris] + ? [...cache.getWorkspaceCache().imageUris, ...cache.getWorkspaceCache().markdownUris] : []), ...(!isResourceAutocomplete ? [ - ...getWorkspaceCache().markdownUris, - ...getWorkspaceCache().imageUris, - ...getWorkspaceCache().otherUris, + ...cache.getWorkspaceCache().markdownUris, + ...cache.getWorkspaceCache().imageUris, + ...cache.getWorkspaceCache().otherUris, ] : []), ]; @@ -100,7 +100,7 @@ export const provideCompletionItems = (document: TextDocument, position: Positio completionItems.push(item); }); - const danglingRefs = getWorkspaceCache().danglingRefs; + const danglingRefs = cache.getWorkspaceCache().danglingRefs; const completionItemsLength = completionItems.length; diff --git a/src/features/extendMarkdownIt.ts b/src/features/extendMarkdownIt.ts index a433f493..49b1e17a 100644 --- a/src/features/extendMarkdownIt.ts +++ b/src/features/extendMarkdownIt.ts @@ -3,8 +3,8 @@ import markdownItRegex from 'markdown-it-regex'; import path from 'path'; import fs from 'fs'; +import { cache } from '../workspace'; import { - getWorkspaceCache, getImgUrlForMarkdownPreview, getFileUrlForMarkdownPreview, containsImageExt, @@ -37,7 +37,7 @@ const extendMarkdownIt = (md: MarkdownIt) => { const { ref, label } = parseRef(rawRef); if (containsImageExt(ref)) { - const imagePath = findUriByRef(getWorkspaceCache().imageUris, ref)?.fsPath; + const imagePath = findUriByRef(cache.getWorkspaceCache().imageUris, ref)?.fsPath; if (imagePath) { return `