diff --git a/server/CHANGELOG.md b/server/CHANGELOG.md index 210ac6088..87e0954c0 100644 --- a/server/CHANGELOG.md +++ b/server/CHANGELOG.md @@ -1,5 +1,9 @@ # Bash Language Server +## 4.6.2 + +- Remove diagnostics for missing nodes that turns out to be unstable (this was introduced in 4.5.3) https://github.com/bash-lsp/bash-language-server/pull/708 + ## 4.6.1 - Fix the ShellCheck code action feature that for some clients did not return any code actions. https://github.com/bash-lsp/bash-language-server/pull/700 diff --git a/server/package.json b/server/package.json index b09861fab..8a7b3958f 100644 --- a/server/package.json +++ b/server/package.json @@ -3,7 +3,7 @@ "description": "A language server for Bash", "author": "Mads Hartmann", "license": "MIT", - "version": "4.6.1", + "version": "4.6.2", "main": "./out/server.js", "typings": "./out/server.d.ts", "bin": { diff --git a/server/src/__tests__/analyzer.test.ts b/server/src/__tests__/analyzer.test.ts index 4786909a2..3006914fa 100644 --- a/server/src/__tests__/analyzer.test.ts +++ b/server/src/__tests__/analyzer.test.ts @@ -62,31 +62,13 @@ describe('analyze', () => { expect(loggerWarn).not.toHaveBeenCalled() }) - it('parses files with a missing nodes and return relevant diagnostics', async () => { + it('parses files with a missing nodes', async () => { const analyzer = await getAnalyzer({}) const diagnostics = analyzer.analyze({ uri: CURRENT_URI, document: FIXTURE_DOCUMENT.MISSING_NODE, }) - expect(diagnostics).toMatchInlineSnapshot(` - [ - { - "message": "Syntax error: "fi" missing", - "range": { - "end": { - "character": 0, - "line": 12, - }, - "start": { - "character": 0, - "line": 12, - }, - }, - "severity": 2, - "source": "bash-language-server", - }, - ] - `) + expect(diagnostics).toEqual([]) expect(loggerWarn).toHaveBeenCalledWith( 'Error while parsing dummy-uri.sh: syntax error', ) diff --git a/server/src/analyser.ts b/server/src/analyser.ts index 5ba08365f..d3b2fcc18 100644 --- a/server/src/analyser.ts +++ b/server/src/analyser.ts @@ -116,11 +116,7 @@ export default class Analyzer { logger.warn(`Error while parsing ${uri}: syntax error`) } - const missingNodesDiagnostics = TreeSitterUtil.getDiagnosticsForMissingNodes( - tree.rootNode, - ) - - return diagnostics.concat(missingNodesDiagnostics) + return diagnostics } /** diff --git a/server/src/util/tree-sitter.ts b/server/src/util/tree-sitter.ts index d4b44aa75..d8725385d 100644 --- a/server/src/util/tree-sitter.ts +++ b/server/src/util/tree-sitter.ts @@ -1,4 +1,4 @@ -import { Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver/node' +import * as LSP from 'vscode-languageserver/node' import { SyntaxNode } from 'web-tree-sitter' /** @@ -14,8 +14,8 @@ export function forEach(node: SyntaxNode, callback: (n: SyntaxNode) => void | bo } } -export function range(n: SyntaxNode): Range { - return Range.create( +export function range(n: SyntaxNode): LSP.Range { + return LSP.Range.create( n.startPosition.row, n.startPosition.column, n.endPosition.row, @@ -56,24 +56,3 @@ export function findParent( } return null } - -export function getDiagnosticsForMissingNodes(node: SyntaxNode) { - const diagnostics: Diagnostic[] = [] - - forEach(node, (node) => { - if (node.isMissing()) { - diagnostics.push( - Diagnostic.create( - range(node), - `Syntax error: "${node.type}" missing`, - DiagnosticSeverity.Warning, - undefined, - 'bash-language-server', - ), - ) - } - return node.hasError() - }) - - return diagnostics -}