デフォルトの構文定義の拡充について

  1. 5 年前から使わせていただいております。

    C# や JavaScript の編集をしていると、
    一部の新しいキーワードが色付けされないことに違和感を覚えます
    (JS で arguments や await、let などが登録されておらず、
     byvalue や operator などの見慣れない単語が登録されている)。

    こちらについてデフォルトの構文定義を更新いただくことはできないでしょうか。

     |  Toru  |  返信
  2. ご愛用ありがとうございます。

    デフォルトの構文定義、確かに結構古くなってますね ^^;
    自分が興味のない言語は完全に放置してます…。

    最新の予約語一覧のデータ (できれば公式のヤツ) があれば、更新することは可能ですので、情報をいただけると助かります。

     |  Kuro  |  返信
  3. JS であればこちらが参考になります。
    https://www.w3schools.com/Js/js_reserved.asp
    async や constructor、get、set はコンテキストキーワード扱いなのか
    リストに含まれていませんが、一緒に含めてもらえると嬉しいです。

    C# はこちらに完全なリストがあります。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/

    以上よろしくお願いいたします。

    > ご愛用ありがとうございます。

    > デフォルトの構文定義、確かに結構古くなってますね ^^;
    > 自分が興味のない言語は完全に放置してます…。

    > 最新の予約語一覧のデータ (できれば公式のヤツ) があれば、更新することは可能ですので、情報をいただけると助かります。

     |  Toru  |  返信
  4. 情報ありがとうございます。

    > JS であればこちらが参考になります。
    私のほうでも調べてみたのですが、JavaScript の予約語やキーワードってなかなか公式文書は見つかりませんね。Atom や VS Code、Sublime Text、Adobe Brackets で強調されるか確認してみたりしましたが、いずれもいまひとつ。

    https://www.w3schools.com/Js/js_reserved.asp
    ↑いただいた URL の情報、調査してみましたが信頼性高そうですし、標準の予約語以外 (Other Reserved Words) でブラウザなどで実装されている予約語も掲載されていて良さそうですね。

    上記サイトから「JavaScript Reserved Words」と「JavaScript Objects, Properties, and Methods」と「Other Reserved Words」を登録しようと思います。

    > async や constructor、get、set はコンテキストキーワード扱いなのか
    > リストに含まれていませんが、一緒に含めてもらえると嬉しいです。
    確かに、async などは含まれていませんね。言語仕様に詳しくないので判断しかねますが、個別対応してしまうと次に更新するときに漏れてしまいそうなので、上記 4 つだけであれば後ほど手動で追加していただければ幸いです。

    > C# はこちらに完全なリストがあります。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/
    ありがとうございます。
    現状の Mery でも上記 C# のサイトのリストとほぼ同等ですが、こちらは「コンテキスト キーワード」のほうを追加登録ということでよろしいでしょうか?

    C# サパーリなので、「コンテキスト キーワード」が何なのかわかりませんが、abstract とかの通常の予約語 (Mery の強調文字列1) とは別の色 (Mery の強調文字列4ぐらい?) を割り当てておけば良いのかな。

     |  Kuro  |  返信
  5. > C# サパーリなので、「コンテキスト キーワード」が何なのかわかりませんが、abstract とかの通常の予約語 (Mery の強調文字列1) とは別の色 (Mery の強調文字列4ぐらい?) を割り当てておけば良いのかな。
    コンテキストキーワードは言語のアップデートに伴って後から追加されたキーワードです。
    識別子として有効な単語ではありますが、特定の文脈(コンテキスト)においてのみキーワード扱いされます。

    とはいえそのような単語をわざわざ識別子に使うケースはあまりない上、
    世の highlighter は文脈に関係なく通常のキーワードと同じ色で表示するため、
    通常のキーワードと同じ色で大丈夫かと思われます
    (ちなみに VS は文脈を判断した上で通常のキーワードと同じ色で表示します)。

     |  Toru  |  返信
  6. ご返信ありがとうございます。

    なるほど、勉強になりました。それでは、通常のキーワードと同じ色で追加登録しておきますね。次のバージョンで対応できると思いますので、今しばらくお待ちくださいませ。

     |  Kuro  |  返信
  7. > ご愛用ありがとうございます。

    > デフォルトの構文定義、確かに結構古くなってますね ^^;
    > 自分が興味のない言語は完全に放置してます…。

    > 最新の予約語一覧のデータ (できれば公式のヤツ) があれば、更新することは可能ですので、情報をいただけると助かります。
    JS(ECMAScript)の予約語の公式文章はこちらですね(結構重いです)

    ・予約語
     - https://tc39.github.io/ecma262/#prod-Keyword
    [await break case catch class const continue debugger default delete do else export extends finally for function if import in instanceof new return super switch this throw try typeof var void while with yield]
    [let static](NOTE内)

    ・将来のための予約語
     - https://tc39.github.io/ecma262/#sec-future-reserved-words
    [enum]
    [implements package protected interface private public](NOTE内)

     |  S  |  返信
  8. 情報ありがとうございます。
    公式文書なるものが存在したのですね。

    Mery Ver 2.6.9 では、ここで教えていただいた "www.w3schools.com" の予約語一覧をもとに更新しましたが、いま確認してみたところ公式文書の予約語もきちんと含まれていました。

    今後、更新のときには教えていただいた公式文書も参考にさせていただこうと思います。

     |  Kuro  |  返信
スポンサーリンク