-
Notifications
You must be signed in to change notification settings - Fork 210
Open
Labels
bugSomething isn't workingSomething isn't workinghelp-wantedExtra attention is neededExtra attention is neededpinnedThis issue or pull request is pinned and won't be marked as staleThis issue or pull request is pinned and won't be marked as stalevscodeThis pull request should be included in the VS Code extension's release notesThis pull request should be included in the VS Code extension's release notes
Description
Description
Ruby LSP Information
Details
VS Code Version
1.95.1
Ruby LSP Extension Version
0.8.14
Ruby LSP Server Version
0.22.1
Ruby LSP Addons
- Ruby LSP Rails
Ruby Version
3.3.6
Ruby Version Manager
rbenv
Installed Extensions
Click to expand
- asciidoctor-vscode (3.4.2)
- gitlens (16.0.4)
- go (0.42.1)
- material-icon-theme (5.14.1)
- remote-containers (0.388.0)
- ruby-lsp (0.8.14)
- sorbet-vscode-extension (0.3.37)
- vscode-github-actions (0.27.0)
- vscode-rdbg (0.2.2)
- vscode-wakatime (24.9.1)
- vscode-yaml (1.15.0)
Ruby LSP Settings
Click to expand
Workspace
{}
User
{
"enabledFeatures": {
"codeActions": true,
"diagnostics": true,
"documentHighlights": true,
"documentLink": true,
"documentSymbols": true,
"foldingRanges": true,
"formatting": true,
"hover": true,
"inlayHint": true,
"onTypeFormatting": true,
"selectionRanges": true,
"semanticHighlighting": true,
"completion": true,
"codeLens": true,
"definition": true,
"workspaceSymbol": true,
"signatureHelp": true,
"typeHierarchy": true
},
"featuresConfiguration": {},
"addonSettings": {},
"rubyVersionManager": {
"identifier": "auto"
},
"customRubyCommand": "",
"formatter": "none",
"linters": null,
"bundleGemfile": "",
"testTimeout": 30,
"branch": "",
"pullDiagnosticsOn": "both",
"useBundlerCompose": false,
"bypassTypechecker": false,
"rubyExecutablePath": "",
"indexing": {},
"erbSupport": true,
"useLauncher": false,
"featureFlags": {}
}
Reproduction steps
A lesser used but valid syntax of erb is <%==
which will mark the passed string as html safe. Rails documents it at the bottom of https://guides.rubyonrails.org/active_support_core_extensions.html#safe-strings, although I'm not sure if this is rails specific or not. Could very well be erubi
only.
ruby-lsp fails to consider the second equal sign, showing the code like this:
A fix seems rather straightforward but erb highlighting has no tests and I don't really understand these gramar files so I'm not very confident in my change. I can open a PR if it looks reasonable and no tests are fine.
Patch
diff --git a/vscode/grammars/erb.cson.json b/vscode/grammars/erb.cson.json
index 475a9454..fe88bb21 100644
--- a/vscode/grammars/erb.cson.json
+++ b/vscode/grammars/erb.cson.json
@@ -80,7 +80,7 @@
"tags": {
"patterns": [
{
- "begin": "<%+(?!>)[-=]?(?![^%]*%>)",
+ "begin": "<%+(?!>)[-=]?=?(?![^%]*%>)",
"beginCaptures": {
"0": {
"name": "punctuation.section.embedded.begin.erb"
@@ -113,7 +113,7 @@
]
},
{
- "begin": "<%+(?!>)[-=]?",
+ "begin": "<%+(?!>)[-=]?=?",
"beginCaptures": {
"0": {
"name": "punctuation.section.embedded.begin.erb"
diff --git a/vscode/languages/erb.json b/vscode/languages/erb.json
index ae1564fb..f8373735 100644
--- a/vscode/languages/erb.json
+++ b/vscode/languages/erb.json
@@ -5,6 +5,7 @@
"brackets": [
["<%", "%>"],
["<%=", "%>"],
+ ["<%==", "%>"],
["<%#", "%>"]
],
"autoClosingPairs": [
@@ -35,6 +36,7 @@
"surroundingPairs": [
["<%", "%>"],
["<%=", "%>"],
+ ["<%==", "%>"],
["<%#", "%>"],
["{", "}"],
["[", "]"],
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinghelp-wantedExtra attention is neededExtra attention is neededpinnedThis issue or pull request is pinned and won't be marked as staleThis issue or pull request is pinned and won't be marked as stalevscodeThis pull request should be included in the VS Code extension's release notesThis pull request should be included in the VS Code extension's release notes