diff --git a/src/extension.ts b/src/extension.ts index 8f70f5fc2f01e7ab710a91d46e72b57f292ada54..9429c41ae405b98211d49dd9899ce3167dce8261 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -14,8 +14,7 @@ Uri, commands, Selection, Position, - Range, - TextEditorRevealType + Range } from 'vscode' import { @@ -77,13 +76,34 @@ let outputChannel: OutputChannel = Window.createOutputChannel( 'lsp-multi-server-example' ) - async function didOpenTextDocument(document: TextDocument): Promise { - // if ( - // document.uri.scheme !== 'file' || - // LANGUAGES.indexOf(document.languageId) === -1 - // ) { - // return - // } + let files = await Workspace.findFiles(CONFIG_GLOB, '**/node_modules/**', 1) + + if (!files.length) return + + let configPath = files[0].fsPath + delete require.cache[configPath] + + let refresh = createTreeView(configPath) + commands.registerCommand('tailwindcss.goToDefinition', () => { + // refresh() + // Window.showInformationMessage('Hello World!') + Workspace.openTextDocument(files[0]).then((doc: TextDocument) => { + Window.showTextDocument(doc).then((editor: TextEditor) => { + let start = new Position(0, 0) + let end = new Position(0, 0) + editor.revealRange(new Range(start, end)) + editor.selection = new Selection(start, end) + }) + }) + }) + + function didOpenTextDocument(document: TextDocument): void { + if ( + document.uri.scheme !== 'file' || + LANGUAGES.indexOf(document.languageId) === -1 + ) { + return + } let uri = document.uri let folder = Workspace.getWorkspaceFolder(uri) @@ -92,18 +112,10 @@ // Single file languages like JSON might handle files outside the workspace folders. if (!folder) { return } - // If we have nested workspace folders we only start a server on the outer most workspace folder. folder = getOuterMostWorkspaceFolder(folder) if (!clients.has(folder.uri.toString())) { - let files = await Workspace.findFiles( - CONFIG_GLOB, - '**/node_modules/**', - 1 - ) - if (!files.length) return - let debugOptions = { execArgv: ['--nolazy', `--inspect=${6011 + clients.size}`] } @@ -127,32 +139,6 @@ 'LSP Multi Server Example', serverOptions, clientOptions ) - - client.onReady().then(() => { - client.onNotification('tailwindcss/foundConfig', configPath => { - let refresh = createTreeView(configPath) - }) - client.onNotification( - 'tailwindcss/foundDefinition', - (configPath, pos) => { - Workspace.openTextDocument(configPath).then((doc: TextDocument) => { - Window.showTextDocument(doc).then((editor: TextEditor) => { - let start = new Position(pos[0], pos[1]) - let end = new Position(pos[2], pos[3]) - editor.revealRange( - new Range(start, end), - TextEditorRevealType.InCenter - ) - editor.selection = new Selection(start, end) - }) - }) - } - ) - commands.registerCommand('tailwindcss.goToDefinition', key => { - client.sendNotification('tailwindcss/findDefinition', [key]) - }) - }) - // client.onReady().then(() => { // client.onNotification('tailwind/loaded', () => { // console.log('loaded') diff --git a/src/treeView.ts b/src/treeView.ts index 13038fc2ee5b2458e598c80a8f6a97ceaa1e1e58..6931c6cad12fd3fbc3a609dd3655e26d57d52cf4 100644 --- a/src/treeView.ts +++ b/src/treeView.ts @@ -104,9 +104,7 @@ ? TreeItemCollapsibleState.Collapsed : TreeItemCollapsibleState.None, isObj ? undefined : configValueToString(item[key]), undefined, - isObj - ? undefined - : { ...command, arguments: [element.key.concat(key)] } + isObj ? undefined : command ) let color = getSvgColorFromValue(item[key]) @@ -148,9 +146,7 @@ 'icons', ICONS[key] ) : undefined, - isObject(this.config[key]) - ? undefined - : { ...command, arguments: [[key]] } + isObject(this.config[key]) ? undefined : command ) ) }