Ticket #41083

Javascript のシンタックスハイライト (osdn.net #40488 関連)

Open Date: 2020-12-29 17:49 Last Update: 2021-01-02 10:00

Reporter:
(Anonymous)
Owner:
(None)
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

>script 要素内では /* */ と// をコメント扱いとする」ようにできれば理想ですが、それをするには単体の javascript の シンタックスハイライトを先に実装する必要がありそうです。 こちらのほうも プレリリース版2.16.8+-jp-7 で対応しました https://github.com/sdottaka/winmerge-v2-jp/releases/tag/2.16.8%2B-jp-7

おおお、Javascript の部分が色分けされている!! でも、JavaとJavascript のパーサーが共有のままなのが気になったので、改造してみました。 Visual Studio Community を本日インストールしたばかりなので、やり方は自信ないですが、一応コンパイルできました。

(1) CrystalLineParser::ParseLineJava をコピーして CrystalLineParser::ParseLineJavascript を作成

(パーサーの中身はそのまま)

(2) html.cpp、crystallineparser.cpp、crystallineparser.h も書き換え

(3) Javascript用のキーワードリストを用意

  1. static const TCHAR * s_apszJavascriptKeywordList[] =
  2. {
  3. _T ("async"),
  4. _T ("await"),
  5. _T ("break"),
  6. _T ("case"),
  7. _T ("catch"),
  8. _T ("class"),
  9. _T ("const"),
  10. _T ("constructor"),
  11. _T ("continue"),
  12. _T ("debugger"),
  13. _T ("default"),
  14. _T ("delete"),
  15. _T ("do"),
  16. _T ("each"),
  17. _T ("else"),
  18. _T ("export"),
  19. _T ("extends"),
  20. _T ("false"),
  21. _T ("for"),
  22. _T ("function"),
  23. _T ("if"),
  24. _T ("import"),
  25. _T ("in"),
  26. _T ("instanceof"),
  27. _T ("let"),
  28. _T ("new"),
  29. _T ("null"),
  30. _T ("of"),
  31. _T ("resolve"),
  32. _T ("return"),
  33. _T ("static"),
  34. _T ("super"),
  35. _T ("switch"),
  36. _T ("target"),
  37. _T ("this"),
  38. _T ("throw"),
  39. _T ("true"),
  40. _T ("try"),
  41. _T ("typeof"),
  42. _T ("undefined"),
  43. _T ("var"),
  44. _T ("void"),
  45. _T ("while"),
  46. _T ("with"),
  47. _T ("yield")
  48. };

Ticket History (3/3 Histories)

2020-12-29 17:49 Updated by: None
  • New Ticket "Javascript のシンタックスハイライト (osdn.net #40488 関連)" created
2020-12-30 10:44 Updated by: sdottaka
  • Resolution Update from None to Fixed
  • Status Update from Open to Closed
Comment

ご連絡ありがとうございます

https://github.com/WinMerge/winmerge/commit/91a79154ddf7d3b4551807f034626f4458f63275

でJavaとJavaScript のパーザーを分離してみました。 (キーワードをいくつか追加し、拡張子 json も JavaScriptとしてシンタックスハイライトするようにしています)

2021-01-02 10:00 Updated by: None
Comment

JavaとJavaScript のパーザーを分離してみました。 (キーワードをいくつか追加し、拡張子 json も JavaScriptとしてシンタックスハイライトするようにしています)

ありがとうございます。

勢いで投稿してから、TypeScript用(*.ts, *.tsx)のキーワードも入れておけばよかったかな、と思ってみたりしたのですが、私はTypeScriptを使用していないので、普段使用されている方のご意見が聞きたいです。

  1. /*
  2. //TypeScript Keyword
  3. _T ("any"),
  4. _T ("boolean"),
  5. _T ("never"),
  6. _T ("number"),
  7. _T ("object"),
  8. _T ("string"),
  9. _T ("type"),
  10. _T ("symbol"),
  11. _T ("unique"),
  12. _T ("unknown"),
  13. */

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login