aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/queries/c-sharp/highlights.scm238
-rw-r--r--runtime/queries/java/highlights.scm2
-rw-r--r--runtime/queries/php/highlights.scm2
-rw-r--r--runtime/queries/tsq/highlights.scm46
-rw-r--r--runtime/queries/vue/highlights.scm21
-rw-r--r--runtime/queries/vue/injections.scm17
-rw-r--r--runtime/themes/nord.toml6
-rw-r--r--runtime/tutor.txt208
8 files changed, 525 insertions, 15 deletions
diff --git a/runtime/queries/c-sharp/highlights.scm b/runtime/queries/c-sharp/highlights.scm
new file mode 100644
index 00000000..b76f4e60
--- /dev/null
+++ b/runtime/queries/c-sharp/highlights.scm
@@ -0,0 +1,238 @@
+;; Methods
+(method_declaration (identifier) @type (identifier) @function)
+
+;; Types
+(interface_declaration name: (identifier) @type)
+(class_declaration name: (identifier) @type)
+(enum_declaration name: (identifier) @type)
+(struct_declaration (identifier) @type)
+(record_declaration (identifier) @type)
+(namespace_declaration name: (identifier) @type)
+
+(constructor_declaration name: (identifier) @type)
+
+[
+ (implicit_type)
+ (nullable_type)
+ (pointer_type)
+ (function_pointer_type)
+ (predefined_type)
+] @type.builtin
+
+;; Enum
+(enum_member_declaration (identifier) @variable.property)
+
+;; Literals
+[
+ (real_literal)
+ (integer_literal)
+] @number
+
+[
+ (character_literal)
+ (string_literal)
+ (verbatim_string_literal)
+ (interpolated_string_text)
+ (interpolated_verbatim_string_text)
+ "\""
+ "$\""
+ "@$\""
+ "$@\""
+ ] @string
+
+[
+ (boolean_literal)
+ (null_literal)
+ (void_keyword)
+] @constant.builtin
+
+;; Comments
+(comment) @comment
+
+;; Tokens
+[
+ ";"
+ "."
+ ","
+] @punctuation.delimiter
+
+[
+ "--"
+ "-"
+ "-="
+ "&"
+ "&&"
+ "+"
+ "++"
+ "+="
+ "<"
+ "<<"
+ "="
+ "=="
+ "!"
+ "!="
+ "=>"
+ ">"
+ ">>"
+ "|"
+ "||"
+ "?"
+ "??"
+ "^"
+ "~"
+ "*"
+ "/"
+ "%"
+ ":"
+] @operator
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+;; Keywords
+(modifier) @keyword
+(this_expression) @keyword
+(escape_sequence) @keyword
+
+[
+ "as"
+ "base"
+ "break"
+ "case"
+ "catch"
+ "checked"
+ "class"
+ "continue"
+ "default"
+ "delegate"
+ "do"
+ "else"
+ "enum"
+ "event"
+ "explicit"
+ "finally"
+ "for"
+ "foreach"
+ "goto"
+ "if"
+ "implicit"
+ "interface"
+ "is"
+ "lock"
+ "namespace"
+ "operator"
+ "params"
+ "return"
+ "sizeof"
+ "stackalloc"
+ "struct"
+ "switch"
+ "throw"
+ "try"
+ "typeof"
+ "unchecked"
+ "using"
+ "while"
+ "new"
+ "await"
+ "in"
+ "yield"
+ "get"
+ "set"
+ "when"
+ "out"
+ "ref"
+ "from"
+ "where"
+ "select"
+ "record"
+ "init"
+ "with"
+ "let"
+] @keyword
+
+
+;; Linq
+(from_clause (identifier) @variable)
+(group_clause)
+(order_by_clause)
+(select_clause (identifier) @variable)
+(query_continuation (identifier) @variable) @keyword
+
+;; Record
+(with_expression
+ (with_initializer_expression
+ (simple_assignment_expression
+ (identifier) @variable)))
+
+;; Exprs
+(binary_expression (identifier) @variable (identifier) @variable)
+(binary_expression (identifier)* @variable)
+(conditional_expression (identifier) @variable)
+(prefix_unary_expression (identifier) @variable)
+(postfix_unary_expression (identifier)* @variable)
+(assignment_expression (identifier) @variable)
+(cast_expression (identifier) @type (identifier) @variable)
+
+;; Class
+(base_list (identifier) @type)
+(property_declaration (generic_name))
+(property_declaration
+ type: (nullable_type) @type
+ name: (identifier) @variable)
+(property_declaration
+ type: (predefined_type) @type
+ name: (identifier) @variable)
+(property_declaration
+ type: (identifier) @type
+ name: (identifier) @variable)
+
+;; Lambda
+(lambda_expression) @variable
+
+;; Attribute
+(attribute) @type
+
+;; Parameter
+(parameter
+ type: (identifier) @type
+ name: (identifier) @variable.parameter)
+(parameter (identifier) @variable.parameter)
+(parameter_modifier) @keyword
+
+;; Typeof
+(type_of_expression (identifier) @type)
+
+;; Variable
+(variable_declaration (identifier) @type)
+(variable_declarator (identifier) @variable)
+
+;; Return
+(return_statement (identifier) @variable)
+(yield_statement (identifier) @variable)
+
+;; Type
+(generic_name (identifier) @type)
+(type_parameter (identifier) @variable.parameter)
+(type_argument_list (identifier) @type)
+
+;; Type constraints
+(type_parameter_constraints_clause (identifier) @variable.parameter)
+(type_constraint (identifier) @type)
+
+;; Exception
+(catch_declaration (identifier) @type (identifier) @variable)
+(catch_declaration (identifier) @type)
+
+;; Switch
+(switch_statement (identifier) @variable)
+(switch_expression (identifier) @variable)
+
+;; Lock statement
+(lock_statement (identifier) @variable)
diff --git a/runtime/queries/java/highlights.scm b/runtime/queries/java/highlights.scm
index 3f8ae0d5..e7d793df 100644
--- a/runtime/queries/java/highlights.scm
+++ b/runtime/queries/java/highlights.scm
@@ -47,7 +47,7 @@
; Variables
((identifier) @constant
- (#match? @constant "^_*[A-Z][A-Z\d_]+"))
+ (#match? @constant "^_*[A-Z][A-Z\\d_]+$"))
(identifier) @variable
diff --git a/runtime/queries/php/highlights.scm b/runtime/queries/php/highlights.scm
index 83850403..02904555 100644
--- a/runtime/queries/php/highlights.scm
+++ b/runtime/queries/php/highlights.scm
@@ -42,7 +42,7 @@
(relative_scope) @variable.builtin
((name) @constant
- (#match? @constant "^_?[A-Z][A-Z\d_]+$"))
+ (#match? @constant "^_?[A-Z][A-Z\\d_]+$"))
((name) @constructor
(#match? @constructor "^[A-Z]"))
diff --git a/runtime/queries/tsq/highlights.scm b/runtime/queries/tsq/highlights.scm
new file mode 100644
index 00000000..9ba5699a
--- /dev/null
+++ b/runtime/queries/tsq/highlights.scm
@@ -0,0 +1,46 @@
+; mark the string passed #match? as a regex
+(((predicate_name) @function
+ (capture)
+ (string) @string.regexp)
+ (#eq? @function "#match?"))
+
+; highlight inheritance comments
+((query . (comment) @keyword.directive)
+ (#match? @keyword.directive "^;\ +inherits *:"))
+
+[
+ "("
+ ")"
+ "["
+ "]"
+] @punctuation.bracket
+
+":" @punctuation.delimiter
+
+[
+ (one_or_more)
+ (zero_or_one)
+ (zero_or_more)
+] @operator
+
+[
+ (wildcard_node)
+ (anchor)
+] @constant.builtin
+
+[
+ (anonymous_leaf)
+ (string)
+] @string
+
+(comment) @comment
+
+(field_name) @property
+
+(capture) @label
+
+(predicate_name) @function
+
+(escape_sequence) @escape
+
+(node_name) @variable
diff --git a/runtime/queries/vue/highlights.scm b/runtime/queries/vue/highlights.scm
new file mode 100644
index 00000000..f90ae429
--- /dev/null
+++ b/runtime/queries/vue/highlights.scm
@@ -0,0 +1,21 @@
+(tag_name) @tag
+(end_tag) @tag
+
+(directive_name) @keyword
+(directive_argument) @constant
+
+(attribute
+ (attribute_name) @attribute
+ (quoted_attribute_value
+ (attribute_value) @string)
+)
+
+(comment) @comment
+
+[
+ "<"
+ ">"
+ "</"
+ "{{"
+ "}}"
+] @punctuation.bracket \ No newline at end of file
diff --git a/runtime/queries/vue/injections.scm b/runtime/queries/vue/injections.scm
new file mode 100644
index 00000000..8ee34ffb
--- /dev/null
+++ b/runtime/queries/vue/injections.scm
@@ -0,0 +1,17 @@
+(directive_attribute
+ (directive_name) @keyword
+ (quoted_attribute_value
+ (attribute_value) @injection.content)
+ (#set! injection.language "javascript"))
+
+((interpolation
+ (raw_text) @injection.content)
+ (#set! injection.language "javascript"))
+
+((script_element
+ (raw_text) @injection.content)
+ (#set! injection.language "javascript"))
+
+((style_element
+ (raw_text) @injection.content)
+ (#set! injection.language "css"))
diff --git a/runtime/themes/nord.toml b/runtime/themes/nord.toml
index c6a0e172..ee7c8865 100644
--- a/runtime/themes/nord.toml
+++ b/runtime/themes/nord.toml
@@ -1,7 +1,7 @@
# Author : RayGervais<raygervais@hotmail.ca>
# "ui.linenr.selected" = { fg = "#d8dee9" }
-# "ui.text.focus" = { fg = "#e5ded6", modifiers= ["bold"] }
+"ui.text.focus" = { fg = "#88c0d0", modifiers= ["bold"] }
# "ui.menu.selected" = { fg = "#e5ded6", bg = "#313f4e" }
# "info" = "#b48ead"
@@ -24,8 +24,8 @@
"ui.cursor.match" = { bg = "434c5e" }
# nord3 - comments
-"comment" = "#4c566a"
-"ui.linenr" = { fg = "#4c566a" }
+"comment" = "#616E88"
+"ui.linenr" = { fg = "#616E88" }
# Snow Storm
# nord4 - cursor, variables, constants, attributes, fields
diff --git a/runtime/tutor.txt b/runtime/tutor.txt
index 07b88884..b6f600d0 100644
--- a/runtime/tutor.txt
+++ b/runtime/tutor.txt
@@ -20,7 +20,6 @@ _________________________________________________________________
the first lesson.
-
=================================================================
= BASIC CURSOR MOVEMENT =
=================================================================
@@ -43,7 +42,6 @@ _________________________________________________________________
-
=================================================================
= EXITING HELIX =
=================================================================
@@ -66,7 +64,6 @@ _________________________________________________________________
-
=================================================================
= DELETION =
=================================================================
@@ -89,7 +86,6 @@ _________________________________________________________________
-
=================================================================
= INSERT MODE =
=================================================================
@@ -112,7 +108,6 @@ _________________________________________________________________
Note: The status bar will display your current mode.
Notice that when you press i, 'NOR' changes to 'INS'.
-
=================================================================
= MORE ON INSERT MODE =
=================================================================
@@ -123,7 +118,7 @@ _________________________________________________________________
Common examples of insertion commands include:
i - Insert before the selection.
- a - Insert after the selection. (a means "append")
+ a - Insert after the selection. (a means 'append')
I - Insert at the start of the line.
A - Insert at the end of the line.
@@ -135,7 +130,6 @@ _________________________________________________________________
--> This sentence is miss
This sentence is missing some text.
-
=================================================================
= SAVING A FILE =
=================================================================
@@ -158,7 +152,6 @@ _________________________________________________________________
-
=================================================================
= RECAP =
=================================================================
@@ -181,7 +174,6 @@ _________________________________________________________________
-
=================================================================
= MOTIONS AND SELECTIONS =
=================================================================
@@ -204,7 +196,6 @@ _________________________________________________________________
-
=================================================================
= MORE ON MOTIONS =
=================================================================
@@ -227,6 +218,203 @@ _________________________________________________________________
+=================================================================
+= THE CHANGE COMMAND =
+=================================================================
+
+ Press c to change the current selection.
+
+ The change command deletes the current selection and enters
+ Insert mode, so it is a very common shorthand for di.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move to the start of an incorrect word and press w to
+ select it.
+ 3. Press c to delete the word and enter Insert mode.
+ 4. Type the correct word.
+ 5. Repeat until the line matches the line below it.
+
+ --> This paper has heavy words behind it.
+ This sentence has incorrect words in it.
+
+
+
+
+=================================================================
+= COUNTS WITH MOTIONS =
+=================================================================
+
+ Type a number before a motion to repeat it that many times.
+
+ 1. Move the cursor to the line below marked -->.
+
+ 2. Type 2w to move 2 words forward.
+
+ 3. Type 3e to move to the end of the third word forward.
+
+ 4. Type 2b to move 2 words backwards
+
+ 5. Try the above with different numbers.
+
+ --> This is just a line with words you can move around in.
+
+
+
+
+
+=================================================================
+= SELECTING LINES =
+=================================================================
+
+ Press x to select a whole line. Press again to select the next.
+
+ 1. Move the cursor to the second line below marked -->.
+ 2. Press x to select the line, and d to delete it.
+ 3. Move to the fourth line.
+ 4. Press x twice or type 2x to select 2 lines, and d to delete.
+
+ --> 1) Roses are red,
+ --> 2) Mud is fun,
+ --> 3) Violets are blue,
+ --> 4) I have a car,
+ --> 5) Clocks tell time,
+ --> 6) Sugar is sweet,
+ --> 7) And so are you.
+
+
+
+
+=================================================================
+= UNDOING =
+=================================================================
+
+ Type u to undo. Type U to redo.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move to the first error, and press d to delete it.
+ 3. Type u to undo your deletion.
+ 4. Fix all the errors on the line.
+ 5. Type u several times to undo your fixes.
+ 6. Type U (<SHIFT> + u) several times to redo your fixes.
+
+ --> Fiix the errors on thhis line and reeplace them witth undo.
+
+
+
+
+
+
+
+
+=================================================================
+= RECAP =
+=================================================================
+
+ * Type w to select forward until the next word.
+ * Type e to select to the end of the current word.
+ * Type b to select backward to the start of the current word.
+ * Use uppercase counterparts, W,E,B, to traverse WORDS.
+
+ * Typing d deletes the entire selection, so you can delete a
+ word forward by typing wd.
+
+ * Type c to delete the selection and enter Insert mode.
+
+ * Type a number before a motion to repeat it that many times.
+
+ * Type x to select the entire current line. Type x again to
+ select the next line.
+
+ * Type u to undo. Type U to redo.
+
+
+=================================================================
+= MULTIPLE CURSORS =
+=================================================================
+
+ Type C to duplicate the cursor to the next line.
+
+ 1. Move the cursor to the first line below marked -->.
+ 2. Type C to duplicate the cursor to the next line. Keys you
+ press will now affect both cursors.
+ 3. Use Insert mode to correct the lines. The two cursors will
+ fix both lines simultaneously.
+ 4. Type , to remove the second cursor.
+
+ --> Fix th two nes at same ime.
+ --> Fix th two nes at same ime.
+
+ Fix these two lines at the same time.
+
+
+
+
+
+=================================================================
+= THE SELECT COMMAND =
+=================================================================
+
+ Type s to select matches in the selection.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Press x to select the line.
+ 3. Press s. A prompt will appear.
+ 4. Type 'apples' and press <ENTER>. Both occurrences of
+ 'apples' in the line will be selected.
+ 5. You can now press c and change 'apples' to something else,
+ like 'oranges'.
+ 6. Type , to remove the second cursor.
+
+ --> I like to eat apples since my favorite fruit is apples.
+
+
+
+
+
+
+=================================================================
+= SELECTING VIA REGEX =
+=================================================================
+
+ The select command selects regular expressions, not just exact
+ matches, allowing you to target more complex patterns.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Select the line with x and then press s.
+ 3. Enter ' +' to select any amount of consecutive spaces >1.
+ 4. Press c and change the matches to single spaces.
+
+ --> This sentence has some extra spaces.
+
+ Note: If you want to perform find-and-replace, the select
+ command is the way to do it. Select the text you want
+ to replace in — type % to select the whole file — and
+ then perform the steps explained above.
+
+
+
+
+=================================================================
+= COLLAPSING SELECTIONS =
+=================================================================
+
+ Type ; to collapse selections to single cursors.
+
+ Sometimes, you want to deselect without having to move the
+ cursor(s). This can be done using the ; key.
+
+ 1. Move the cursor to the line below marked -->.
+
+ 2. Use the motions you have learned to move around the line,
+ and try using ; to deselect the text after it is selected
+ by the motions.
+
+ --> This is an error-free line with words to move around in.
+
+
+
+
+
=================================================================
This tutorial is still a work-in-progress.