扩展 Notepad++ 中的 Lua 语言设置以拼写检查也包含在 `[[ ... ]]` 中的内容

Extend Lua language settings in Notepad++ to spell-check also stuff enclosed in `[[ ... ]]`

我目前正在浏览 LaTeX's TikZ/PGF code and among other things I want to correct spelling errors because parts of these lua files are also used for the manual 的 lua 个文件。

为此,我使用 Notepad++,但看起来 [[" ... "]] 中包含的内容未进行拼写检查。这是文件 DistanceMatrix.lua 中的示例,我引入了拼写错误。

declare {
  key = "distance matrix verticess",
  type = "string",

  summary = [["
    A list of verticess that are used in the parsing of the
    |distance matrix| key. If this key is not used at all, all
    vertices of the graph will be used for the computation of a
    distance matrix.
  "]],

下图左侧是 Lua 是活动语言时的结果,右侧是 TeX 是活动语言时的结果。

可以看出,当 Lua 是活动语言时,"verticess" 一词在 summary 部分没有下划线。

是否可以 extend/modify Notepad++ 中的 Lua 语言,从而对 [[" ... "]] 中包含的部分进行拼写检查? (也许不用引号对 [[ ... ]] 中的内容进行拼写检查就足够了?不幸的是,我不熟悉 Lua 语言。)当然,如果可能的话,怎么做?

我认为问题是 DSpellCheck Notepad++ 插件在选择突出显示语言样式时不检查 字符串文字 。这不仅发生在 Lua 上,也发生在其他语言上(例如 C# 及其 @"multiline string literal";)。可能没有简单的方法来解决这个问题。我建议跟他们开票

一些建议:

Scintilla.h中定义

#define SCE_LUA_LITERALSTRING 8

并且在 DsSpellCheck 的 SpellChecker.cpp

if (category != SciUtils::StyleCategory::text && !((category == SciUtils::StyleCategory::comment && m_settings.check_comments) ||
  (category == SciUtils::StyleCategory::string && m_settings.check_strings) ||
  (category == SciUtils::StyleCategory::identifier && m_settings.check_variable_functions))) {

但是,Scintilla 可能没有正确公开 Lua 字符串文字的字符串 属性..

TeX 在某种程度上根据其语言风格的定义方式作弊。 TeX 定义识别变量名称中的拼写错误:

这可能是很多人的烦恼。

如果使用旧版本的 DSpellCheck(1.3.5 或更早版本)可以满足您的需求,您可以取消选中 DSpellCheck 的 Check Only Comments and Strings if Possible 设置以将此行为应用于所有语言:


更改后的 Lua 语言设置示例: