cs.xml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!-- ==========================================================================\
  3. |
  4. | To learn how to make your own language parser, please check the following
  5. | link:
  6. | https://npp-user-manual.org/docs/function-list/
  7. |
  8. \=========================================================================== -->
  9. <NotepadPlus>
  10. <functionList>
  11. <!-- ========================================================== [ C# ] -->
  12. <!--
  13. | Based on:
  14. | http://sourceforge.net/p/notepad-plus/patches/613/
  15. \-->
  16. <parser
  17. displayName="C#"
  18. id ="csharp_class"
  19. commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
  20. >
  21. <classRange
  22. mainExpr ="^[\t\x20]*((public|protected|private|internal)\s+)?(\w+\s*)?(class|struct|interface)[\t\x20]+[^\{]+\{"
  23. openSymbole ="\{"
  24. closeSymbole="\}"
  25. >
  26. <className>
  27. <nameExpr expr="(class|struct|interface)[\t\x20]+\w+" />
  28. <nameExpr expr="[\t\x20]+\w+" />
  29. <nameExpr expr="\w+" />
  30. </className>
  31. <function
  32. mainExpr="^[^\S\r\n]*(?&lt;modifier1&gt;(?:public|protected|internal|private)\s*)?(?&lt;modifier2&gt;(?:new|static|virtual|sealed|override|abstract|extern)\s*)?(partial\s*)?(?&lt;type&gt;(?!(return|if|else))\w+(?&lt;genericType&gt;&lt;[\w,\s&lt;&gt;]+&gt;)?\s+)(?&lt;name&gt;\w+(?&lt;genericNameType&gt;&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)\((?&lt;params&gt;[\w\s,&lt;&gt;\[\]\:=\.]*)\)(?&lt;ctorChain&gt;\s*\:\s*(?:base|this)\s*\((?&lt;ctorParams&gt;[\w\s,&lt;&gt;\[\]\:=\.]*)\))?[\w\s&lt;&gt;\:,\(\)\[\]]*(?:\{|;)"
  33. >
  34. <functionName>
  35. <funcNameExpr expr="(\w+(&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)\(" />
  36. <funcNameExpr expr="(\w+(&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)" />
  37. </functionName>
  38. </function>
  39. </classRange>
  40. </parser>
  41. </functionList>
  42. </NotepadPlus>