From 214118d34879c9e2cdd8a46f41d8357c00e98a21 Mon Sep 17 00:00:00 2001 From: waynewaynetsai Date: Sun, 2 Jan 2022 14:30:46 +0800 Subject: [PATCH] Fix `vimrc.path` containing `$HOME` (#7360) - Handle vimrc path with $home variable correctly after saving vimrc file - Fix vim.editVimrc command's error with vimrcPath's $HOME variable - Display warning message when no vimrcPath is found Fixes #7359, fixes #7358 --- extensionBase.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/extensionBase.ts b/extensionBase.ts index 5a9892af289..7689d026587 100644 --- a/extensionBase.ts +++ b/extensionBase.ts @@ -18,6 +18,7 @@ import { taskQueue } from './src/taskQueue'; import { Register } from './src/register/register'; import { SpecialKeys } from './src/util/specialKeys'; import { HistoryTracker } from './src/history/historyTracker'; +import { vimrc } from './src/configuration/vimrc'; let extensionContext: vscode.ExtensionContext; let previousActiveEditorUri: vscode.Uri | undefined; @@ -216,7 +217,8 @@ export async function activate(context: vscode.ExtensionContext, handleLocal: bo registerEventListener(context, vscode.workspace.onDidSaveTextDocument, async (document) => { if ( configuration.vimrc.enable && - path.relative(document.fileName, configuration.vimrc.path) === '' + vimrc.vimrcPath && + path.relative(document.fileName, vimrc.vimrcPath) === '' ) { await configuration.load(); vscode.window.showInformationMessage('Sourced new .vimrc'); @@ -493,8 +495,12 @@ export async function activate(context: vscode.ExtensionContext, handleLocal: bo context, 'vim.editVimrc', async () => { - const document = await vscode.workspace.openTextDocument(configuration.vimrc.path); - await vscode.window.showTextDocument(document); + if (vimrc.vimrcPath) { + const document = await vscode.workspace.openTextDocument(vimrc.vimrcPath); + await vscode.window.showTextDocument(document); + } else { + await vscode.window.showWarningMessage('No .vimrc found. Please set `vim.vimrc.path.`'); + } }, false );