Module: Textbringer::TreeSitter::LanguageAliases
- Defined in:
- lib/textbringer/tree_sitter/language_aliases.rb
Overview
Constant Summary collapse
- ALIASES =
Canonical language names mapped to their aliases
{ "csharp" => ["c-sharp", "c_sharp", "cs"], "javascript" => ["js"], "typescript" => ["ts"], "python" => ["py"], "ruby" => ["rb"] }.freeze
- ALIAS_TO_CANONICAL =
Build reverse lookup: alias => canonical name
ALIASES.flat_map { |canonical, aliases| aliases.map { |alias_name| [alias_name, canonical] } }.to_h.freeze
Class Method Summary collapse
-
.normalize(language) ⇒ String
Normalize a language name to its canonical form.
-
.to_sym(language) ⇒ Symbol
Convert a normalized canonical name to a symbol.
Class Method Details
.normalize(language) ⇒ String
Normalize a language name to its canonical form
Examples:
normalize("c-sharp") #=> "csharp"
normalize("C_Sharp") #=> "csharp"
normalize(:csharp) #=> "csharp"
normalize("ruby") #=> "ruby"
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/textbringer/tree_sitter/language_aliases.rb', line 37 def normalize(language) # Convert to string and lowercase name = language.to_s.downcase # Check exact match with known alias (e.g., "c-sharp", "js", "rb") return ALIAS_TO_CANONICAL[name] if ALIAS_TO_CANONICAL.key?(name) # Check separator-stripped match (e.g., "CSharp" → "csharp") stripped = name.tr("-_", "") return ALIAS_TO_CANONICAL[stripped] if ALIAS_TO_CANONICAL.key?(stripped) # Not aliased - return original name preserving separators # (e.g., "embedded-template" stays "embedded-template") name end |
.to_sym(language) ⇒ Symbol
Convert a normalized canonical name to a symbol
Examples:
to_sym("c-sharp") #=> :csharp
to_sym(:ruby) #=> :ruby
61 62 63 |
# File 'lib/textbringer/tree_sitter/language_aliases.rb', line 61 def to_sym(language) normalize(language).to_sym end |