From 73abd0d6fe0079b7c1735321ec118c237ab8f864 Mon Sep 17 00:00:00 2001 From: Dennis Rardin Date: Sat, 3 Apr 2021 03:59:24 -0500 Subject: [PATCH] Add syntax highlighting for Expect scripts. File is a copy of tcl.nanorc with Expect commands added (Expect is a TCL extension). --- expect.nanorc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 expect.nanorc diff --git a/expect.nanorc b/expect.nanorc new file mode 100644 index 0000000..da9e626 --- /dev/null +++ b/expect.nanorc @@ -0,0 +1,29 @@ +syntax "EXPECT" "\.exp$" +header "^#!.*/(env +)?expect( |$)" + +magic "Tcl(/Tk)? script" +comment "#" + +## Standard Expect [info commands] +color cyan "\<(close|debug|disconnect|exit|exp_continue|exp_internal|exp_open|exp_pid|exp_send|exp_send_error|exp_send_log|exp_send_tty|exp_send_user|exp_version|expect|expect_after|expect_background|expect_before|expect_tty|expect_user|fork|interact|interpreter|log_file|log_user|match_max|overlay|parity|remove_nulls|send|send_error|send_log|send_tty|send_user|sleep|spawn|strace|stty|system|timestamp|trap|wait)\>" +## Standard Tcl [info commands] +color cyan "\<(after|append|array|auto_execok|auto_import|auto_load|auto_load_index|auto_qualify|binary|break|case|catch|cd|clock|close|concat|continue|else|encoding|eof|error|eval|exec|exit|expr|fblocked|fconfigure|fcopy|file|fileevent|flush|for|foreach|format|gets|glob|global|history|if|incr|info|interp|join|lappend|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|namespace|open|package|pid|puts|pwd|read|regexp|regsub|rename|return|scan|seek|set|socket|source|split|string|subst|switch|tclLog|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait|while)\>" +## Basic Tcl sub commands +color cyan "\<(array anymore|array donesearch|array exists|array get|array names|array nextelement|array set|array size|array startsearch|array statistics|array unset)\>" +color cyan "\<(string bytelength|string compare|string equal|string first|string index|string is|string last|string length|string map|string match|string range|string repeat|string replace|string to|string tolower|string totitle|string toupper|string trim|string trimleft|string trimright|string will|string wordend|string wordstart)\>" +## Extended TclX [info commands] +color cyan "\<(alarm|auto_load_pkg|bsearch|catclose|catgets|catopen|ccollate|cconcat|cequal|chgrp|chmod|chown|chroot|cindex|clength|cmdtrace|commandloop|crange|csubstr|ctoken|ctype|dup|echo|execl|fcntl|flock|fork|fstat|ftruncate|funlock|host_info|id|infox|keyldel|keylget|keylkeys|keylset|kill|lassign|lcontain|lempty|lgets|link|lmatch|loadlibindex|loop|lvarcat|lvarpop|lvarpush|max|min|nice|pipe|profile|random|readdir|replicate|scancontext|scanfile|scanmatch|select|server_accept|server_create|signal|sleep|sync|system|tclx_findinit|tclx_fork|tclx_load_tndxs|tclx_sleep|tclx_system|tclx_wait|times|translit|try_eval|umask|wait)\>" +## Function declaration +color brightblue "proc[[:space:]]" "(\{|\})" +## Syntax +color green "(\(|\)|\;|`|\\|\$|<|>|!|=|&|\|)" +## Numbers +color brightyellow "\<[0-9]+(\.[0-9]+)?\>" +## Strings +color yellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" +## Variables +icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?" +## Comments +color magenta "(^|;)[[:space:]]*#.*" +## Trailing whitespace +color ,green "[[:space:]]+$"