Merge pull request #22623 from jow-/nano-ucode-syntax-highlighting

nano: add syntax highlighting for ucode scripts
This commit is contained in:
Hannu Nyman 2023-11-08 16:55:31 +02:00 committed by GitHub
commit 60b4bb2a0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 1 deletions

View File

@ -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

View File

@ -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 "\{#[+-]?|-?#\}"