1
1
mirror of https://github.com/mawww/kakoune.git synced 2024-10-05 17:18:00 +03:00

Merge remote-tracking branch 'm-kru/typst'

This commit is contained in:
Maxime Coste 2024-05-29 21:39:24 +10:00
commit 3878c56f8d

69
rc/filetype/typst.kak Normal file
View File

@ -0,0 +1,69 @@
# Detection
# ‾‾‾‾‾‾‾‾‾
hook global BufCreate .*[.](typ) %{
set-option buffer filetype typst
}
# Initialization
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
hook -group typst-highlight global WinSetOption filetype=typst %{
require-module typst
add-highlighter window/typst ref typst
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/typst }
hook window InsertChar \n -group typst typst-on-new-line
}
provide-module typst %§
# Highlighters
# ‾‾‾‾‾‾‾‾‾‾‾‾
add-highlighter shared/typst group
# Comments
add-highlighter shared/typst/ regex ^//(?:[^\n/][^\n]*|)$ 0:comment
# Strings
add-highlighter shared/typst/ regex '"[^"]*"' 0:string
# Headings
add-highlighter shared/typst/ regex ^=+\h+[^\n]+$ 0:header
# Code blocks
# Raw with optional syntax highlighting
add-highlighter shared/typst/ regex '^```[^(```)]*```' 0:mono
# Multiline monospace
add-highlighter shared/typst/ regex '^`[^(`)]*`' 0:mono
# Monospace text
add-highlighter shared/typst/ regex \B(`[^\n]+?`)\B 0:mono
add-highlighter shared/typst/ regex \B(```[^\n]+?```)\B 0:mono
# Bold text
add-highlighter shared/typst/ regex \s\*[^\*]+\*\B 0:+b
# Italic text
add-highlighter shared/typst/ regex \b_.*?_\b 0:+i
# Code expressions: functions, variables
add-highlighter shared/typst/ regex (^|\h)#(\w|\.|-)+ 0:meta
# Bold terms in term lists
add-highlighter shared/typst/ regex ^/\h[^:]*: 0:+b
§
# Commands
# ‾‾‾‾‾‾‾‾
define-command -hidden typst-on-new-line %<
evaluate-commands -draft -itersel %<
# Preserve previous line indent
try %{ execute-keys -draft <semicolon> K <a-&> }
# Cleanup trailing whitespaces from previous line
try %{ execute-keys -draft k x s \h+$ <ret> d }
>
>