58 lines
1.7 KiB
Plaintext
Raw Permalink Normal View History

2025-06-27 02:31:23 +01:00
#update nushell sublime syntax
export def "nushell-syntax-2-sublime" [] {
let builtin = filter-command built-in
let plugins = filter-command plugin
let custom = filter-command custom
let keywords = filter-command keyword
let aliases = (
scope aliases
| get name
| uniq
| str join " | "
)
let personal_external = (
$env.PATH
| find bash & nushell
| get 0
| ansi strip
| ls $in
| find -v Readme
| get name
| path parse
| get stem
| str join " | "
)
let extra_keywords = " | else | catch"
let builtin = " (?x: " + $builtin + ")"
let plugins = " (?x: " + $plugins + ")"
let custom = " (?x: " + $custom + ")"
let keywords = " (?x: " + $keywords + $extra_keywords + ")"
let aliases = " (?x: " + $aliases + ")"
let personal_external = " (?x: " + $personal_external + ")"
let operators = " (?x: and | or | mod | in | not-in | not | xor | bit-or | bit-xor | bit-and | bit-shl | bit-shr | starts-with | ends-with)"
let new_commands = [] ++ $builtin ++ $custom ++ $plugins ++ $keywords ++ $aliases ++ $personal_external ++ $operators
mut file = open ~/.config/sublime-text/Packages/User/nushell.sublime-syntax | lines
let idx = $file | indexify | find '(?x:' | get index | drop | enumerate
for i in $idx {
$file = ($file | upsert $i.item ($new_commands | get $i.index))
}
$file | save -f ~/.config/sublime-text/Packages/User/nushell.sublime-syntax
}
#add a hidden column with the content of the # column
export def indexify [
column_name?: string = 'index'
] {
enumerate
| upsert $column_name {|el|
$el.index
}
| flatten
}