fix: handle non-file URI schemes gracefully in shellcheck linting #1371
+35
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fix for linting error when opening files via virtual filesystems (WebDAV, kio-fuse, etc.).
Closes #1370
Problem
When using editors like Kate on KDE Plasma with WebDAV-mounted files, the document URI uses a non-
file:scheme (e.g.,kio-fuse://...). The linter would throw:This occurred because
fileURLToPath()from Node.js only acceptsfile:URIs.Solution
Added a
safeFileURLToPathhelper function that:file:protocolfile:URIsnullfor non-file:URIs or invalid URIsWhen the document path cannot be determined, linting proceeds without adding the document's directory to the source paths. This means ShellCheck's
--source-pathwill only include explicitly configured paths, but linting will still work for the document content itself.Testing
Added a test case to verify that non-
file:URI schemes are handled gracefully without throwing errors.Notes
file:URIs - it just won't include the document's directory in the source search pathsourcePathsin their LSP client settings if needed