From 87130fa9fb2cd592c9d3385340ba614745b23353 Mon Sep 17 00:00:00 2001 From: AltCode Date: Sat, 19 Sep 2026 10:37:30 +0200 Subject: [PATCH 1/2] fix(ruby): adjust specifity of word characters Only treat `!` and `?` as word characters when used in identifiers, symbols, hash key symbols, or the `defined?` method --- languages/ruby/config.toml | 4 +++- languages/ruby/overrides.scm | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/languages/ruby/config.toml b/languages/ruby/config.toml index 502a658..5d28c90 100644 --- a/languages/ruby/config.toml +++ b/languages/ruby/config.toml @@ -63,9 +63,11 @@ tab_size = 2 increase_indent_pattern = '(^\s*(module|class|def|if|elsif|else|unless|case|when|while|until|for|begin|rescue|ensure)\b|\bdo\s*(\|[^|]*\|)?\s*$)' decrease_indent_pattern = '^\s*(end|elsif|else|when|rescue|ensure)\b' scope_opt_in_language_servers = ["tailwindcss-language-server"] -word_characters = ["?", "!"] debuggers = ["rdbg"] [overrides.string] completion_query_characters = ["-", "."] opt_into_language_servers = ["tailwindcss-language-server"] + +[overrides.identifier] +word_characters = ["!", "?"] diff --git a/languages/ruby/overrides.scm b/languages/ruby/overrides.scm index d3d4b61..41863b0 100644 --- a/languages/ruby/overrides.scm +++ b/languages/ruby/overrides.scm @@ -2,3 +2,10 @@ (string (string_content) @string.inclusive) + +[ + (identifier) + (simple_symbol) + (hash_key_symbol) + "defined?" +] @identifier From 73a91b51588c71d6cd63cb6a0d486203d1aa8cdd Mon Sep 17 00:00:00 2001 From: AltCode Date: Tue, 22 Sep 2026 15:46:36 +0200 Subject: [PATCH 2/2] Update overrides tests --- tests/languages/ruby/overrides.rb | 4 ++ tests/languages/ruby/snapshots/overrides.snap | 66 ++++++++++++++++++- 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/tests/languages/ruby/overrides.rb b/tests/languages/ruby/overrides.rb index 36aa447..915673b 100644 --- a/tests/languages/ruby/overrides.rb +++ b/tests/languages/ruby/overrides.rb @@ -1,6 +1,10 @@ +# Overrides fixtures for tree-sitter queries + # A Ruby comment plain_string = "plain text" interpolated_string = "hello #{user.name}" single_quoted_string = 'single quoted text' regexp = /[a-z]+/ symbol = :valid? +defined? function! +{ symbol?: :"!delimited", "key-hash": "value", "string" => nil } diff --git a/tests/languages/ruby/snapshots/overrides.snap b/tests/languages/ruby/snapshots/overrides.snap index 9b8a2ca..37b5b40 100644 --- a/tests/languages/ruby/snapshots/overrides.snap +++ b/tests/languages/ruby/snapshots/overrides.snap @@ -5,16 +5,76 @@ expression: captures - name: comment.inclusive line: 1 column: 1 + text: "# Overrides fixtures for tree-sitter queries" +- name: comment.inclusive + line: 3 + column: 1 text: "# A Ruby comment" +- name: identifier + line: 4 + column: 1 + text: plain_string - name: string.inclusive - line: 2 + line: 4 column: 17 text: plain text +- name: identifier + line: 5 + column: 1 + text: interpolated_string - name: string.inclusive - line: 3 + line: 5 column: 24 text: "hello " +- name: identifier + line: 5 + column: 32 + text: user +- name: identifier + line: 5 + column: 37 + text: name +- name: identifier + line: 6 + column: 1 + text: single_quoted_string - name: string.inclusive - line: 4 + line: 6 column: 25 text: single quoted text +- name: identifier + line: 7 + column: 1 + text: regexp +- name: identifier + line: 8 + column: 1 + text: symbol +- name: identifier + line: 8 + column: 10 + text: ":valid?" +- name: identifier + line: 9 + column: 1 + text: defined? +- name: identifier + line: 9 + column: 10 + text: function! +- name: identifier + line: 10 + column: 3 + text: symbol? +- name: string.inclusive + line: 10 + column: 28 + text: key-hash +- name: string.inclusive + line: 10 + column: 40 + text: value +- name: string.inclusive + line: 10 + column: 49 + text: string