diff options
author | Jo-Philipp Wich <jo@mein.io> | 2023-11-08 14:53:37 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2023-11-08 14:53:37 +0100 |
commit | d8a574f7f0eb2f5970119a2b0527048583054180 (patch) | |
tree | cad20864a07f7771c4bb626e2beab151ef0a7986 /utils/nano | |
parent | aca4330c0427a7a2d1cdc23b14207a95a15b292c (diff) |
nano: add syntax highlighting for ucode scripts
Introduce local syntax highlighting support for ucode scripts, like
it is done already for uci configuration files.
Ref: https://github.com/jow-/ucode/issues/178
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'utils/nano')
-rw-r--r-- | utils/nano/Makefile | 3 | ||||
-rw-r--r-- | utils/nano/files/ucode.nanorc | 51 |
2 files changed, 53 insertions, 1 deletions
diff --git a/utils/nano/Makefile b/utils/nano/Makefile index e68b28950..4400b780f 100644 --- a/utils/nano/Makefile +++ b/utils/nano/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nano PKG_VERSION:=7.2 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNU/nano @@ -140,6 +140,7 @@ define Package/nano-full/install $(INSTALL_DIR) $(1)/etc $(1)/usr/share/nano $(INSTALL_DATA) ./files/nanorc $(1)/etc/nanorc $(INSTALL_DATA) ./files/uci.nanorc $(1)/usr/share/nano + $(INSTALL_DATA) ./files/ucode.nanorc $(1)/usr/share/nano $(CP) $(PKG_INSTALL_DIR)/usr/share/nano/* $(1)/usr/share/nano endef diff --git a/utils/nano/files/ucode.nanorc b/utils/nano/files/ucode.nanorc new file mode 100644 index 000000000..96c7848e2 --- /dev/null +++ b/utils/nano/files/ucode.nanorc @@ -0,0 +1,51 @@ +## Syntax highlighting for OpenWrt ucode scripts. + +syntax ucode "/ucode/|\.u[ct]$" +header "^#!.*\<ucode\>" +comment "//" + +# Declarations +color green "\<(let|const|function|this)\>" + +# Arrow functions +color green "(\<\w+\>|\([[:alnum:][:space:]_,.]*\))[[:space:]]*=>" + +# Flow control and keywords +color brightyellow "\<(while|if|else|elif|switch|case|default|for|in|endif|endfor|endwhile|endfunction)\>" +color brightyellow "\<(export|import|try|catch|delete)\>" + +# Exit points +color magenta "\<(break|continue|return)\>" + +# Numeric literals +color cyan "\<([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\>" +color cyan "\<0[xX][[:xdigit:]]+(\.[[:xdigit:]]+)?\>" +color cyan "\<(0[oO][0-7]+|0[bB][01]+|[0-9]+)\>" + +# Special values +color cyan "\<(true|false|null|NaN|Infinity)\>" + +# Strings +color brightmagenta ""([^"\{%#}]|\\.|\{[^"\{%#]|[%#}][^"\}]|[{%#}]\\.)*[{%#}]?"" +color brightmagenta "'([^'\{%#}]|\\.|\{[^'\{%#]|[%#}][^'\}]|[{%#}]\\.)*[{%#}]?'" +color brightmagenta "`([^`\{%#}]|\\.|\{[^`\{%#]|[%#}][^`\}]|[{%#}]\\.)*[{%#}]?`" + +# Template string expressions +color normal start="\$\{" end="}" + +# Comments +color brightblue "(^|[[:blank:]])//.*" +color brightblue start="(^|[[:space:]])/\*" end="\*/" +color brightblue start="\{#" end="#\}" + +# Trailing whitespace. +color ,green "[[:space:]]+$" + +# Text outside template directives +color slate start="[}%#]\}" end="\{[{%#]" +color slate start="^#!" end="\{[{%#]" +color slate "^([^{%#}]|\{[^{%#]|[%#}][^}])+\{[{%#]" + +# Template tags +color white "\{[{%][+-]?|-?[%}]\}" +color brightblue "\{#[+-]?|-?#\}" |