###やりたい事
正規化表現「Regex」を使って関数、クラス、enumを認識させたい。
###質問内容
提示コードですがこれはnanoエディタのシンタックスハイライトの設定ファイルです。この設定ファイルに関数、クラス、enumを認識させて色を変化させたいのですが調べて構文を確認しましたが実装方法がわかりません。
color [bold,][italic,]fgcolor,bgcolor start="fromrx" end="torx" 開始が拡張正規表現「fromrx」に一致し、終了が拡張正規表現「torx」に一致するすべてのテキストを、指定された前景色と背景色でペイントします。少なくとも1つを指定する必要があります。これは、「fromrx」の最初のインスタンスの後、「torx」の最初のインスタンスまでのすべてのテキストが色付けされることを意味します。これにより、構文の強調表示を複数行にまたがることができます。
###参考サイト
A: https://qiita.com/yynsmk/items/cc6591178e732d3f7b7a
B: https://userweb.mnet.ne.jp/nakama/
C: http://www.turtle.gr.jp/techno/regular-expression.html
D: https://www.nano-editor.org/dist/latest/nano.html#Syntax-Highlighting(8.2構文の強調表示)
nanorc
1## Here is an example for C/C++. 2 3syntax c ".([ch](pp|xx)?|C|cc|c++|cu|H|hh|ii?)$" 4header "-*-.*\<C(++)?((;|\s).*)?-*-" 5magic "^(C|C++) (source|program)" 6comment "//" 7 8# Constants. 9color blue "\<[A-Z_][0-9A-Z_]+\>" 10# Labels. 11color magenta "^[[:space:]]*[A-Z_a-z]+:[[:space:]]*$" 12 13color blue "\<(float|double|bool|char|int|short|long|sizeof|enum|void|auto|static|const|struct|union|typedef|extern|(un)?signed|inline|true|false)\>" 14color blue "\<([[:lower:]][[:lower:]_]*|(u_?)?int(8|16|32|64))_t\>" 15color blue "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|override|using|mutable|volatile|register|explicit)\>" 16color blue "\<(for|if|while|do|else|case|default|switch)\>" 17color blue "\<(try|throw|catch|operator|new|delete)\>" 18color blue "\<(goto|continue|break|return)\>" 19color magenta "'([^']|(\["'abfnrtv\]))'" "'\(([0-3]?[0-7]{1,2}))'" "'\x[0-9A-Fa-f]{1,2}'" 20 21# GCC builtins. 22color cyan "__attribute__[[:space:]]*(([^)]*))" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" 23 24# Strings. In general you will want your strings and comments to come last, 25# because highlighting rules are applied in the order they are read in. 26color blue ""([^"]|\")*"" "#[[:space:]]*include[[:space:]]+<[^[:blank:]=]*>" 27# Multiline strings. This regex is VERY resource intensive, 28# and sometimes colours things that shouldn't be coloured. 29###color brightyellow start=""(\.|[^"])*\[[:space:]]*$" end="^(\.|[^"])*"" 30 31# Preprocessor directives. 32color magenta start="^[[:space:]]*#[[:space:]]*(if(n?def)?|elif|warning|error|pragma)\>" end="(\`|[^\])$" 33color magenta "^[[:space:]]*#[[:space:]]*(define|else|endif|include(_next)?|undef)\>" 34 35# Comments. 36color green "//.*" 37#color brightblue "//.*" 38 39color green start="/*" end="*/" 40 41# Reminders. 42color brightwhite,yellow "\<(FIXME|TODO|XXX)\>" 43 44# Trailing whitespace. 45#color ,green "[[:space:]]+$"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/09/12 08:54
2021/09/12 08:57
退会済みユーザー
2021/09/12 09:03
2021/09/12 09:06
退会済みユーザー
2021/09/12 09:08
2021/09/12 09:12
2021/09/12 09:15 編集
退会済みユーザー
2021/09/13 11:31 編集