Skip to content

Commit

Permalink
Add support for MATLAB/Octave files (helix-editor#5192)
Browse files Browse the repository at this point in the history
  • Loading branch information
g-s-k authored and gibbz00 committed Dec 17, 2022
1 parent f3287c8 commit edfb00c
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
| make || | | |
| markdown || | | `marksman` |
| markdown.inline || | | |
| matlab || | | |
| mermaid || | | |
| meson || || |
| mint | | | | `mint` |
Expand Down
13 changes: 13 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2068,3 +2068,16 @@ indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "mermaid"
source = { git = "https://github.com/monaqa/tree-sitter-mermaid", rev = "d787c66276e7e95899230539f556e8b83ee16f6d" }

[[language]]
name = "matlab"
scope = "source.m"
file-types = ["m"]
comment-token = "%"
shebangs = ["octave-cli", "matlab"]
roots = []
indent = { tab-width = 2, unit = " " }

[[grammar]]
name = "matlab"
source = { git = "https://github.com/mstanciu552/tree-sitter-matlab", rev = "2d5d3d5193718a86477d4335aba5b34e79147326" }
97 changes: 97 additions & 0 deletions runtime/queries/matlab/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
; highlights.scm

function_keyword: (function_keyword) @keyword.function

(function_definition
function_name: (identifier) @function
(end) @function)

(parameter_list (identifier) @variable.parameter)

[
"if"
"elseif"
"else"
"switch"
"case"
"otherwise"
] @keyword.control.conditional

(if_statement (end) @keyword.control.conditional)
(switch_statement (end) @keyword.control.conditional)

["for" "while"] @keyword.control.repeat
(for_statement (end) @keyword.control.repeat)
(while_statement (end) @keyword.control.repeat)

["try" "catch"] @keyword.control.exception
(try_statement (end) @keyword.control.exception)

(function_definition end: (end) @keyword)

["return" "break" "continue"] @keyword.return

(
(identifier) @constant.builtin
(#any-of? @constant.builtin "true" "false")
)

(
(identifier) @constant.builtin
(#eq? @constant.builtin "end")
)

;; Punctuations

[";" ","] @punctuation.special
(argument_list "," @punctuation.delimiter)
(vector_definition ["," ";"] @punctuation.delimiter)
(cell_definition ["," ";"] @punctuation.delimiter)
":" @punctuation.delimiter
(parameter_list "," @punctuation.delimiter)
(return_value "," @punctuation.delimiter)

; ;; Brackets

[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket

;; Operators
"=" @operator
(operation [ ">"
"<"
"=="
"<="
">="
"=<"
"=>"
"~="
"*"
".*"
"/"
"\\"
"./"
"^"
".^"
"+"] @operator)

;; boolean operator
[
"&&"
"||"
] @operator

;; Number
(number) @constant.numeric

;; String
(string) @string

;; Comment
(comment) @comment

0 comments on commit edfb00c

Please sign in to comment.