Skip to content

Commit bd3f7ea

Browse files
committed
fish: init
1 parent 484708c commit bd3f7ea

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
@@ -80,6 +80,7 @@ tree-sitter-cpp = "0.23.4"
8080
tree-sitter-css = "0.23.1"
8181
tree-sitter-elixir = "0.3.4"
8282
tree-sitter-erlang = "0.13.0"
83+
tree-sitter-fish = { git = "https://github.com/ram02z/tree-sitter-fish", tag = "3.6.0", version = "3.6.0" }
8384
tree-sitter-fsharp = "0.1.0"
8485
tree-sitter-go = "0.23.4"
8586
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,
@@ -129,6 +130,7 @@ pub(crate) fn language_name(language: Language) -> &'static str {
129130
Elvish => "Elvish",
130131
EmacsLisp => "Emacs Lisp",
131132
Erlang => "Erlang",
133+
Fish => "fish",
132134
FSharp => "F#",
133135
Gleam => "Gleam",
134136
Go => "Go",
@@ -271,6 +273,7 @@ pub(crate) fn language_globs(language: Language) -> Vec<glob::Pattern> {
271273
"rebar.config.lock",
272274
"rebar.lock",
273275
],
276+
Fish => &["*.fish"],
274277
FSharp => &["*.fs", "*.fsx", "*.fsi"],
275278
Gleam => &["*.gleam"],
276279
Go => &["*.go"],
@@ -528,6 +531,7 @@ fn from_emacs_mode_header(src: &str) -> Option<Language> {
528531
"elm" => Some(Elm),
529532
"elvish" => Some(Elvish),
530533
"emacs-lisp" => Some(EmacsLisp),
534+
"fish" => Some(Fish),
531535
"fsharp" => Some(FSharp),
532536
"gleam" => Some(Gleam),
533537
"go" => Some(Go),

src/parse/tree_sitter_parser.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,20 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig {
383383
sub_languages: vec![],
384384
}
385385
}
386+
Fish => {
387+
let language = tree_sitter_fish::language();
388+
389+
TreeSitterConfig {
390+
language: language.clone(),
391+
atom_nodes: ["single_quote_string", "double_quote_string"]
392+
.into_iter()
393+
.collect(),
394+
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")],
395+
highlight_query: ts::Query::new(&language, tree_sitter_fish::HIGHLIGHTS_QUERY)
396+
.unwrap(),
397+
sub_languages: vec![],
398+
}
399+
}
386400
FSharp => {
387401
let language_fn = tree_sitter_fsharp::LANGUAGE_FSHARP;
388402
let language = tree_sitter::Language::new(language_fn);

0 commit comments

Comments
 (0)