Skip to content

Commit 01e76d4

Browse files
committed
fish: init
1 parent 32a5a16 commit 01e76d4

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

Cargo.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ tree-sitter-cpp = "0.23.4"
8484
tree-sitter-css = "0.23.1"
8585
tree-sitter-elixir = "0.3.4"
8686
tree-sitter-erlang = "0.13.0"
87+
tree-sitter-fish = { git = "https://github.com/ram02z/tree-sitter-fish", tag = "1.0.0", version = "3.5.1" }
8788
tree-sitter-fsharp = "0.1.0"
8889
tree-sitter-go = "0.23.4"
8990
tree-sitter-haskell = "0.23.1"

src/parse/guess_language.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ pub(crate) enum Language {
3535
Elvish,
3636
EmacsLisp,
3737
Erlang,
38+
Fish,
3839
FSharp,
3940
Gleam,
4041
Go,
@@ -128,6 +129,7 @@ pub(crate) fn language_name(language: Language) -> &'static str {
128129
Elvish => "Elvish",
129130
EmacsLisp => "Emacs Lisp",
130131
Erlang => "Erlang",
132+
Fish => "fish",
131133
FSharp => "F#",
132134
Gleam => "Gleam",
133135
Go => "Go",
@@ -269,6 +271,7 @@ pub(crate) fn language_globs(language: Language) -> Vec<glob::Pattern> {
269271
"rebar.config.lock",
270272
"rebar.lock",
271273
],
274+
Fish => &["*.fish"],
272275
FSharp => &["*.fs", "*.fsx", "*.fsi"],
273276
Gleam => &["*.gleam"],
274277
Go => &["*.go"],
@@ -525,6 +528,7 @@ fn from_emacs_mode_header(src: &str) -> Option<Language> {
525528
"elm" => Some(Elm),
526529
"elvish" => Some(Elvish),
527530
"emacs-lisp" => Some(EmacsLisp),
531+
"fish" => Some(Fish),
528532
"fsharp" => Some(FSharp),
529533
"gleam" => Some(Gleam),
530534
"go" => Some(Go),

src/parse/tree_sitter_parser.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,20 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig {
373373
sub_languages: vec![],
374374
}
375375
}
376+
Fish => {
377+
let language = tree_sitter_fish::language();
378+
379+
TreeSitterConfig {
380+
language: language.clone(),
381+
atom_nodes: ["single_quote_string", "double_quote_string"]
382+
.into_iter()
383+
.collect(),
384+
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")],
385+
highlight_query: ts::Query::new(&language, tree_sitter_fish::HIGHLIGHTS_QUERY)
386+
.unwrap(),
387+
sub_languages: vec![],
388+
}
389+
}
376390
FSharp => {
377391
let language_fn = tree_sitter_fsharp::LANGUAGE_FSHARP;
378392
let language = tree_sitter::Language::new(language_fn);

0 commit comments

Comments
 (0)