aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editors/kak/autoload/filetype/bqn.kak201
1 files changed, 101 insertions, 100 deletions
diff --git a/editors/kak/autoload/filetype/bqn.kak b/editors/kak/autoload/filetype/bqn.kak
index bd4724e1..c8c7911a 100644
--- a/editors/kak/autoload/filetype/bqn.kak
+++ b/editors/kak/autoload/filetype/bqn.kak
@@ -3,6 +3,10 @@
hook global BufCreate .*\.bqn %{
set-option buffer filetype bqn
+
+ set-option buffer matching_pairs ( ) { } [ ] ⟨ ⟩
+
+ map buffer insert '\' '<esc>:enter-user-mode bqn<ret>' -docstring 'enter bqn character'
}
# Initialization
@@ -13,103 +17,6 @@ hook global WinSetOption filetype=bqn %¹
hook window InsertChar \n -group bqn-indent bqn-indent-on-new-line
hook window InsertChar [}⟩\]] -group bqn-indent bqn-indent-on-closing
- set-option buffer matching_pairs ( ) { } [ ] ⟨ ⟩
-
- declare-user-mode bqn
- map buffer insert '\' '<esc>:enter-user-mode bqn<ret>' -docstring 'enter bqn character'
-
- # + + + Conjugate | Add
- # - - - Negate | Subtract
- map buffer bqn '=' ':exec i×<ret>' -docstring '× Sign | Multiply'
- map buffer bqn <minus> ':exec i÷<ret>' -docstring '÷ Reciprocal | Divide'
- map buffer bqn '+' ':exec i⋆<ret>' -docstring '⋆ Exponential | Power'
- map buffer bqn '_' ':exec i√<ret>' -docstring '√ Square root | Root'
- map buffer bqn 'b' ':exec i⌊<ret>' -docstring '⌊ Floor | Minimum'
- map buffer bqn 'B' ':exec i⌈<ret>' -docstring '⌈ Ceiling | Maximum'
- map buffer bqn 't' ':exec i∧<ret>' -docstring '∧ SortUp | And'
- map buffer bqn 'v' ':exec i∨<ret>' -docstring '∨ SortDown | Or'
- map buffer bqn '~' ':exec i¬<ret>' -docstring '¬ Not | Span'
- # | | | AbsoluteValue | Modulus
- map buffer bqn '<' ':exec i≤<ret>' -docstring '≤ | LessOrEqual'
- # < < < Enclose | LessThan
- # > > > Merge | GreaterThan
- map buffer bqn '>' ':exec i><ret>' -docstring '> | GreaterOrEqual'
- # = = = Rank | Equal
- map buffer bqn '/' ':exec i≠<ret>' -docstring '≠ Length | NotEqual'
- map buffer bqn 'm' ':exec i≡<ret>' -docstring '≡ Depth | Match'
- map buffer bqn 'M' ':exec i≢<ret>' -docstring '≢ Shape | NotMatch'
- map buffer bqn '{' ':exec i⊣<ret>' -docstring '⊣ Identity | Left'
- map buffer bqn '}' ':exec i⊢<ret>' -docstring '⊢ Identity | Right'
- map buffer bqn 'z' ':exec i⥊<ret>' -docstring '⥊ Deshape | Reshape'
- map buffer bqn ',' ':exec i∾<ret>' -docstring '∾ Join | JoinTo'
- map buffer bqn '.' ':exec i≍<ret>' -docstring '≍ Solo | Couple'
- map buffer bqn 'Z' ':exec i⋈<ret>' -docstring '⋈ Enclose | Pair'
- map buffer bqn 'r' ':exec i↑<ret>' -docstring '↑ Prefixes | Take'
- map buffer bqn 'c' ':exec i↓<ret>' -docstring '↓ Suffixes | Drop'
- map buffer bqn 'd' ':exec i↕<ret>' -docstring '↕ Range | Windows'
- map buffer bqn 'H' ':exec i«<ret>' -docstring '« ShiftBefore | ReplaceEnd'
- map buffer bqn 'L' ':exec i»<ret>' -docstring '» ShiftAfter | ReplaceStart'
- map buffer bqn 'q' ':exec i⌽<ret>' -docstring '⌽ Reverse | Rotate'
- map buffer bqn 'a' ':exec i⍉<ret>' -docstring '⍉ Transpose | ReorderAxis'
- map buffer bqn 'T' ':exec i⍋<ret>' -docstring '⍋ GradeUp | BinsUp'
- map buffer bqn 'V' ':exec i⍒<ret>' -docstring '⍒ GradeDown | BinsDown'
- map buffer bqn 'i' ':exec i⊏<ret>' -docstring '⊏ FirstCell | Select'
- map buffer bqn 'I' ':exec i⊑<ret>' -docstring '⊑ First | Pick'
- map buffer bqn 'o' ':exec i⊐<ret>' -docstring '⊐ Classify | IndexOf'
- map buffer bqn 'O' ':exec i⊒<ret>' -docstring '⊒ VisitCount | AdvanceIndexOf'
- map buffer bqn 'e' ':exec i∊<ret>' -docstring '∊ MarkFirst | MemberOf'
- map buffer bqn 'E' ':exec i⍷<ret>' -docstring '⍷ Deduplicate | Find'
- map buffer bqn 'u' ':exec i⊔<ret>' -docstring '⊔ GroupIndices | Group'
- # / / / Indices | Replicate
- # ! ! ! Assert | AssertMsg
-
- map buffer bqn '"' ':exec i˙<ret>' -docstring '˙ _constant'
- map buffer bqn '`' ':exec i˜<ret>' -docstring '˜ _self | _swap'
- map buffer bqn '1' ':exec i˘<ret>' -docstring '˘ _cells'
- map buffer bqn '2' ':exec i¨<ret>' -docstring '¨ _each'
- map buffer bqn '3' ':exec i⁼<ret>' -docstring '⁼ _undo'
- map buffer bqn '4' ':exec i⌜<ret>' -docstring '⌜ _table'
- map buffer bqn '5' ':exec i´<ret>' -docstring '´ _fold'
- map buffer bqn '6' ':exec i˝<ret>' -docstring '˝ _insert'
- # ` ` ` _scan
- map buffer bqn 'j' ':exec i∘<ret>' -docstring '∘ _atop_'
- map buffer bqn 'k' ':exec i○<ret>' -docstring '○ _over_'
- map buffer bqn 'h' ':exec i⊸<ret>' -docstring '⊸ _bind_before_'
- map buffer bqn 'l' ':exec i⟜<ret>' -docstring '⟜ _bind_after_'
- map buffer bqn 'K' ':exec i⌾<ret>' -docstring '⌾ _under_'
- map buffer bqn '%' ':exec i⊘<ret>' -docstring '⊘ _valences_'
- map buffer bqn '$' ':exec i◶<ret>' -docstring '◶ _choose_'
- map buffer bqn '^' ':exec i⎊<ret>' -docstring '⎊ _catch_'
- map buffer bqn '!' ':exec i⎉<ret>' -docstring '⎉ _rank_'
- map buffer bqn '@' ':exec i⚇<ret>' -docstring '⚇ _depth_'
- map buffer bqn '#' ':exec i⍟<ret>' -docstring '⍟ _repeat_'
- map buffer bqn '[' ':exec i←<ret>' -docstring '← DEFINE'
- map buffer bqn '?' ':exec i⇐<ret>' -docstring '⇐ EXPORT'
- map buffer bqn "'" ':exec i↩<ret>' -docstring '↩ CHANGE'
- map buffer bqn ';' ':exec i⋄<ret>' -docstring '⋄ SEPARATOR'
- map buffer bqn '(' ':exec i⟨<ret>' -docstring '⟨ BEGIN LIST'
- map buffer bqn ')' ':exec i⟩<ret>' -docstring '⟩ END LIST'
- map buffer bqn <space> ':exec i‿<ret>' -docstring '‿ STRAND'
- map buffer bqn ':' ':exec i·<ret>' -docstring '· NOTHING'
- map buffer bqn '0' ':exec i•<ret>' -docstring '• SYSTEM'
-
- map buffer bqn 'w' ':exec i𝕨<ret>' -docstring '𝕨 left argument'
- map buffer bqn 'W' ':exec i𝕎<ret>' -docstring '𝕎 left argument function'
- map buffer bqn 'x' ':exec i𝕩<ret>' -docstring '𝕩 right argument'
- map buffer bqn 'X' ':exec i𝕏<ret>' -docstring '𝕏 right argument function'
- map buffer bqn 'f' ':exec i𝕗<ret>' -docstring '𝕗 left operand'
- map buffer bqn 'F' ':exec i𝔽<ret>' -docstring '𝔽 left operand function'
- map buffer bqn 'g' ':exec i𝕘<ret>' -docstring '𝕘 right operand'
- map buffer bqn 'G' ':exec i𝔾<ret>' -docstring '𝔾 right operand function'
- map buffer bqn 's' ':exec i𝕤<ret>' -docstring '𝕤 self'
- map buffer bqn 'S' ':exec i𝕊<ret>' -docstring '𝕊 self function'
- map buffer bqn 'R' ':exec i𝕣<ret>' -docstring '𝕣 self modifier'
-
- map buffer bqn '9' ':exec i¯<ret>' -docstring '¯ minus'
- map buffer bqn 'p' ':exec iπ<ret>' -docstring 'π constant pi'
- map buffer bqn '8' ':exec i∞<ret>' -docstring '∞ constant infinity'
- # @ constant null character
- # # COMMENT
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window bqn-.+ }
¹
@@ -119,8 +26,7 @@ hook -group bqn-highlight global WinSetOption filetype=bqn %{
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/bqn }
}
-
-provide-module bqn %~
+provide-module bqn %¹
# Highlighters & Completion
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
@@ -150,6 +56,101 @@ add-highlighter shared/bqn/code/ regex "•?\b_[A-Za-z][A-Z_a-z0-9π∞¯]*|_
add-highlighter shared/bqn/code/ regex "[∘○⊸⟜⌾⊘◶⎉⚇⍟⎊]" 0:yellow
add-highlighter shared/bqn/code/ regex "•?\b_[A-Za-z][A-Z_a-z0-9π∞¯]*_|_𝕣_" 0:yellow
+declare-user-mode bqn
+
+# + + + Conjugate | Add
+# - - - Negate | Subtract
+map global bqn '=' ':exec i×<ret>' -docstring '× Sign | Multiply'
+map global bqn <minus> ':exec i÷<ret>' -docstring '÷ Recipical | Divide'
+map global bqn '+' ':exec i⋆<ret>' -docstring '⋆ Exponential | Power'
+map global bqn '_' ':exec i√<ret>' -docstring '√ Square root | Root'
+map global bqn 'b' ':exec i⌊<ret>' -docstring '⌊ Floor | Minimum'
+map global bqn 'B' ':exec i⌈<ret>' -docstring '⌈ Ceiling | Maximum'
+map global bqn 't' ':exec i∧<ret>' -docstring '∧ SortUp | And'
+map global bqn 'v' ':exec i∨<ret>' -docstring '∨ SortDown | Or'
+map global bqn '~' ':exec i¬<ret>' -docstring '¬ Not | Span'
+# | | | AbsoluteValue | Modulus
+map global bqn '<' ':exec i≤<ret>' -docstring '≤ | LessOrEqual'
+# < < < Enclose | LessThan
+# > > > Merge | GreaterThan
+map global bqn '>' ':exec i><ret>' -docstring '> | GreaterOrEqual'
+# = = = Rank | Equal
+map global bqn '/' ':exec i≠<ret>' -docstring '≠ Length | NotEqual'
+map global bqn 'm' ':exec i≡<ret>' -docstring '≡ Depth | Match'
+map global bqn 'M' ':exec i≢<ret>' -docstring '≢ Shape | NotMatch'
+map global bqn '{' ':exec i⊣<ret>' -docstring '⊣ Identity | Left'
+map global bqn '}' ':exec i⊢<ret>' -docstring '⊢ Identity | Right'
+map global bqn 'z' ':exec i⥊<ret>' -docstring '⥊ Deshape | Reshape'
+map global bqn ',' ':exec i∾<ret>' -docstring '∾ Join | JoinTo'
+map global bqn '.' ':exec i≍<ret>' -docstring '≍ Solo | Couple'
+map global bqn 'Z' ':exec i⋈<ret>' -docstring '⋈ Enclose | Pair'
+map global bqn 'r' ':exec i↑<ret>' -docstring '↑ Prefixes | Take'
+map global bqn 'c' ':exec i↓<ret>' -docstring '↓ Suffixes | Drop'
+map global bqn 'd' ':exec i↕<ret>' -docstring '↕ Range | Windows'
+map global bqn 'H' ':exec i«<ret>' -docstring '« ShiftBefore | ReplaceEnd'
+map global bqn 'L' ':exec i»<ret>' -docstring '» ShiftAfter | ReplaceStart'
+map global bqn 'q' ':exec i⌽<ret>' -docstring '⌽ Reverse | Rotate'
+map global bqn 'a' ':exec i⍉<ret>' -docstring '⍉ Transpose | ReorderAxis'
+map global bqn 'T' ':exec i⍋<ret>' -docstring '⍋ GradeUp | BinsUp'
+map global bqn 'V' ':exec i⍒<ret>' -docstring '⍒ GradeDown | BinsDown'
+map global bqn 'i' ':exec i⊏<ret>' -docstring '⊏ FirstCell | Select'
+map global bqn 'I' ':exec i⊑<ret>' -docstring '⊑ First | Pick'
+map global bqn 'o' ':exec i⊐<ret>' -docstring '⊐ Classify | IndexOf'
+map global bqn 'O' ':exec i⊒<ret>' -docstring '⊒ VisitCount | AdvanceIndexOf'
+map global bqn 'e' ':exec i∊<ret>' -docstring '∊ MarkFirst | MemberOf'
+map global bqn 'E' ':exec i⍷<ret>' -docstring '⍷ Deduplicate | Find'
+map global bqn 'u' ':exec i⊔<ret>' -docstring '⊔ GroupIndices | Group'
+# / / / Indices | Replicate
+# ! ! ! Assert | AssertMsg
+
+map global bqn '"' ':exec i˙<ret>' -docstring '˙ _constant'
+map global bqn '`' ':exec i˜<ret>' -docstring '˜ _self | _swap'
+map global bqn '1' ':exec i˘<ret>' -docstring '˘ _cells'
+map global bqn '2' ':exec i¨<ret>' -docstring '¨ _each'
+map global bqn '3' ':exec i⁼<ret>' -docstring '⁼ _undo'
+map global bqn '4' ':exec i⌜<ret>' -docstring '⌜ _table'
+map global bqn '5' ':exec i´<ret>' -docstring '´ _fold'
+map global bqn '6' ':exec i˝<ret>' -docstring '˝ _insert'
+# ` ` ` _scan
+map global bqn 'j' ':exec i∘<ret>' -docstring '∘ _atop_'
+map global bqn 'k' ':exec i○<ret>' -docstring '○ _over_'
+map global bqn 'h' ':exec i⊸<ret>' -docstring '⊸ _bind_before_'
+map global bqn 'l' ':exec i⟜<ret>' -docstring '⟜ _bind_after_'
+map global bqn 'K' ':exec i⌾<ret>' -docstring '⌾ _under_'
+map global bqn '%' ':exec i⊘<ret>' -docstring '⊘ _valences_'
+map global bqn '$' ':exec i◶<ret>' -docstring '◶ _choose_'
+map global bqn '^' ':exec i⎊<ret>' -docstring '⎊ _catch_'
+map global bqn '!' ':exec i⎉<ret>' -docstring '⎉ _rank_'
+map global bqn '@' ':exec i⚇<ret>' -docstring '⚇ _depth_'
+map global bqn '#' ':exec i⍟<ret>' -docstring '⍟ _repeat_'
+map global bqn '[' ':exec i←<ret>' -docstring '← DEFINE'
+map global bqn '?' ':exec i⇐<ret>' -docstring '⇐ EXPORT'
+map global bqn "'" ':exec i↩<ret>' -docstring '↩ CHANGE'
+map global bqn ';' ':exec i⋄<ret>' -docstring '⋄ SEPERATOR'
+map global bqn '(' ':exec i⟨<ret>' -docstring '⟨ BEGIN LIST'
+map global bqn ')' ':exec i⟩<ret>' -docstring '⟩ END LIST'
+map global bqn <space> ':exec i‿<ret>' -docstring '‿ STRAND'
+map global bqn ':' ':exec i·<ret>' -docstring '· NOTHING'
+map global bqn '0' ':exec i•<ret>' -docstring '• SYSTEM'
+
+map global bqn 'w' ':exec i𝕨<ret>' -docstring '𝕨 left argument'
+map global bqn 'W' ':exec i𝕎<ret>' -docstring '𝕎 left argument function'
+map global bqn 'x' ':exec i𝕩<ret>' -docstring '𝕩 right argument'
+map global bqn 'X' ':exec i𝕏<ret>' -docstring '𝕏 right argument function'
+map global bqn 'f' ':exec i𝕗<ret>' -docstring '𝕗 left operand'
+map global bqn 'F' ':exec i𝔽<ret>' -docstring '𝔽 left operand function'
+map global bqn 'g' ':exec i𝕘<ret>' -docstring '𝕘 right operand'
+map global bqn 'G' ':exec i𝔾<ret>' -docstring '𝔾 right operand function'
+map global bqn 's' ':exec i𝕤<ret>' -docstring '𝕤 self'
+map global bqn 'S' ':exec i𝕊<ret>' -docstring '𝕊 self function'
+map global bqn 'R' ':exec i𝕣<ret>' -docstring '𝕣 self modifier'
+
+map global bqn '9' ':exec i¯<ret>' -docstring '¯ minus'
+map global bqn 'p' ':exec iπ<ret>' -docstring 'π constant pi'
+map global bqn '8' ':exec i∞<ret>' -docstring '∞ constant infinity'
+# @ @ @ constant null character
+# # # # COMMENT
+
# Commands
# ‾‾‾‾‾‾‾‾
@@ -173,4 +174,4 @@ define-command -hidden bqn-indent-on-closing %`
_
`
-~