Lisp/Scheme ソース コードを Notepad++ で編集しているときに、同じ問題に遭遇しました。
解決策は、基盤となる Scintilla ライブラリ (SciLexer.dll) にあります。
コードをハックして SciLexer.dll を再構築します。
次のコードに「-」
が追加されていることに注意してください
CharClassify.cxx
void CharClassify::SetDefaultCharClasses(bool includeWordClass) {
// Initialize all char classes to default values
for (int ch = 0; ch < 256; ch++) {
if (ch == '\r' || ch == '\n')
charClass[ch] = ccNewLine;
else if (ch < 0x20 || ch == ' ')
charClass[ch] = ccSpace;
else if (includeWordClass && (ch >= 0x80 || isalnum(ch) || ch == '_' || ch == '-'))
charClass[ch] = ccWord;
else
charClass[ch] = ccPunctuation;
}
}
または、ScintillaDoc.htmlで言及されている「スマートな」方法
SCI_SETWORDCHARS(<unused>, const char *characters)
Scintilla には、単語を操作する関数がいくつかあります。単語は、特定の文字セットからの連続した文字列として定義されています。このメッセージは、どのキャラクターがそのセットのメンバーであるかを定義します。文字セットは、この関数を処理する前にデフォルト値に設定されます。たとえば、文字セットで「_」を許可しない場合は、次のように使用します: SCI_SETWORDCHARS(0,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");