diff --git a/src/function/index.ts b/src/function/index.ts index 3570ea1..ec3f872 100644 --- a/src/function/index.ts +++ b/src/function/index.ts @@ -77,12 +77,10 @@ function registerLsp(context: vscode.ExtensionContext) { vscode.languages.registerCompletionItemProvider(vlogSelector, lspCompletion.vlogPositionPortProvider, '.'); vscode.languages.registerCompletionItemProvider(vlogSelector, lspCompletion.vlogCompletionProvider); vscode.languages.registerDocumentSemanticTokensProvider(vlogSelector, lspDocSemantic.vlogDocSenmanticProvider, lspDocSemantic.vlogLegend); - lspLinter.registerVlogLinterServer(); - + const vlogLinter = lspLinter.registerVlogLinterServer(); + lspLinter.firstLinter(vlogLinter); // vhdl lsp - - } diff --git a/src/function/lsp/linter/index.ts b/src/function/lsp/linter/index.ts index 5957ed0..0c2ad5c 100644 --- a/src/function/lsp/linter/index.ts +++ b/src/function/lsp/linter/index.ts @@ -1,5 +1,6 @@ -import { registerVlogLinterServer } from './vlog'; +import { registerVlogLinterServer, firstLinter } from './vlog'; export { - registerVlogLinterServer + registerVlogLinterServer, + firstLinter }; \ No newline at end of file diff --git a/src/function/lsp/linter/vlog.ts b/src/function/lsp/linter/vlog.ts index 1a1a594..7c0aefa 100644 --- a/src/function/lsp/linter/vlog.ts +++ b/src/function/lsp/linter/vlog.ts @@ -1,5 +1,6 @@ import * as vscode from 'vscode'; import { All } from '../../../../resources/hdlParser'; +import { getLanguageId, isVerilogFile } from '../../../hdlFs/file'; import { hdlParam, HdlSymbol } from '../../../hdlParser'; import { Position, Range } from '../../../hdlParser/common'; @@ -71,19 +72,35 @@ class VlogLinter { } } -function registerVlogLinterServer() { +function registerVlogLinterServer(): VlogLinter { const linter = new VlogLinter(); vscode.workspace.onDidOpenTextDocument(doc => { - linter.lint(doc); + if (isVerilogFile(doc.fileName)) { + linter.lint(doc); + } }); vscode.workspace.onDidSaveTextDocument(doc => { - linter.lint(doc); + if (isVerilogFile(doc.fileName)) { + linter.lint(doc); + } }); vscode.workspace.onDidCloseTextDocument(doc => { - linter.remove(doc); + if (isVerilogFile(doc.fileName)) { + linter.remove(doc); + } }); + return linter; +} + +async function firstLinter(linter: VlogLinter) { + for (const doc of vscode.workspace.textDocuments) { + if (isVerilogFile(doc.fileName)) { + linter.lint(doc); + } + } } export { - registerVlogLinterServer + registerVlogLinterServer, + firstLinter }; \ No newline at end of file diff --git a/src/manager/prj.ts b/src/manager/prj.ts index 79278d8..0bebc2b 100644 --- a/src/manager/prj.ts +++ b/src/manager/prj.ts @@ -197,14 +197,9 @@ class PrjManage { const softwarePath = hdlPath.join(userPath, 'Software'); const hardwarePath = hdlPath.join(userPath, 'Hardware'); - const nextmode = this.getNextMode(rawPrjInfo); - console.log(softwarePath, fs.existsSync(softwarePath)); - console.log(hardwarePath, fs.existsSync(hardwarePath)); - + const nextmode = this.getNextMode(rawPrjInfo); const currmode = this.getCurrentMode(softwarePath, hardwarePath); - console.log(currmode, nextmode); - if (currmode === nextmode) { const hardware = opeParam.prjInfo.arch.hardware; const software = opeParam.prjInfo.arch.software; diff --git a/src/test/user/src/hello.v b/src/test/user/src/hello.v index eaff86e..0e5c8a3 100644 --- a/src/test/user/src/hello.v +++ b/src/test/user/src/hello.v @@ -8,5 +8,5 @@ module mux2to1( ); - assign outp = sel == 1'b0 ? a : b; + assign outp = sel == 1'b0 ? a : b endmodule