notepad++ support clojure by lisp, clojure api & autocompletefile & readme of notepad++ https://drive.google.com/file/d/0By5ssgBX1IWaWDMydXdMdHI0Z2s/view?usp=sharing
在 2015年9月1日星期二 UTC+8下午10:30:38,Alex Woods写道: > > > <https://lh3.googleusercontent.com/-Nwt-5UH6Fa4/VeW0WraCyQI/AAAAAAAAACg/J3zRcS_zzT4/s1600/npp_fl.jpg>my > > set is error: > > > > > > > > > > > ;notepad++\functionList.xml > > <?xml version="1.0" encoding="UTF-8" ?> > <!-- > For learning making your language parser, please check the following link: > http://notepad-plus-plus.org/features/function-list.html > --> > <NotepadPlus> > <functionList> > <associationMap> > <!-- langID: > L_TEXT: 0 L_PHP: 1 L_C: 2 L_CPP: 3 L_CS: 4 > L_OBJC: 5 > L_JAVA: 6 L_RC: 7 L_HTML: 8 L_XML: 9 L_MAKEFILE: 10 > L_PASCAL: 11 > L_BATCH:12 L_INI: 13 L_ASCII: 14 L_USER: 15 L_ASP: 16 > L_SQL: 17 > L_VB: 18 L_JS: 19 L_CSS: 20 L_PERL: 21 L_PYTHON: 22 > L_LUA: 23 > L_TEX: 24 L_FORTRAN: 25 L_BASH: 26 L_FLASH: 27 L_NSIS: 28 > L_TCL: 29 > L_LISP: 30 L_SCHEME: 31 L_ASM: 32 L_DIFF: 33 L_PROPS: 34 > L_PS: 35 > L_RUBY: 36 L_SMALLTALK:37 L_VHDL: 38 L_KIX: 39 L_AU3: 40 > L_CAML: 41 > L_ADA: 42 L_VERILOG: 43 L_MATLAB: 44 L_HASKELL: 45 L_INNO: 46 > L_SEARCHRESULT: 47 > L_CMAKE: 48 L_YAML: 49 L_COBOL 50 L_GUI4CLI: 51 L_D: 52 > L_POWERSHELL: 53 > L_R: 54 L_JSP: 55 > --> > <association langID="1" id="php_function"/> > <association langID="2" id="c_function"/> > <association langID="3" id="c_cpp_function"/> > <association langID="4" id="cs_function"/> > <association langID="6" id="java"/> > <association langID="9" id="xml_node"/> > <association langID="12" id="batch_label"/> > <association langID="13" id="ini_section"/> > <association langID="19" id="js_function"/> > <association langID="21" id="perl_function"/> > <association langID="22" id="python_function"/> > <association langID="26" id="bash_function"/> > <association langID="28" id="nsis_syntax"/> > <association langID="30" id="lisp_function"/> > <!-- > if langID cannot be found above, you can still set the file extensions > <association ext=".my_passer_ext1" id="my_passer_id"/> > <association ext=".my_passer_ext2" id="my_passer_id"/> > for User Defined Languages: > <association userDefinedLangName="my user defined language" > id="my_udl_passer_id"/> > <association userDefinedLangName="Autocad" id="my_autocad_passer_id"/> > --> > > </associationMap> > <parsers> > > <parser id="xml_node" displayName="XML Node" > commentExpr="<!--([^-]|-(?!->))*-->"> > <!-- Only match nodes with at least one attribute --> > <function > mainExpr="<[\w\?]+[\t ]+\w+[\t ]*=[\t ]*"[^"]+"" > displayMode="$functionName"> > <functionName> > <nameExpr expr="[^<]*"/> > </functionName> > </function> > </parser> > > <parser id="batch_label" displayName="BAT Label" > commentExpr="((::.*?$)|(REM.*?$))"> > <function > mainExpr="^[\t ]*:\w+" > displayMode="$functionName"> > <functionName> > <nameExpr expr="[^\t :]*"/> > </functionName> > </function> > </parser> > > <parser id="ini_section" displayName="INI Section" > commentExpr="((#.*?$)|(;.*?$))"> > <function > mainExpr="^[\t ]*[\["][\w_.; \(\)-]+[\]"]" > displayMode="$functionName"> > <functionName> > <nameExpr expr="[^\[\]"]*"/> > </functionName> > </function> > </parser> > > <parser id="java" displayName="Java" commentExpr="((/\*.*?\*)/|(//.**$))"> > <classRange mainExpr="^[\t > ]*((public|protected|private|static|final|abstract|synchronized|@(\w)+)\s+)*(class|enum|interface|@interface)\s+\w+(<\s*\w+(,\s*\w+)*\s*>)?(\s+extends\s+\w+)?(\s+implements\s+\w+(,\s*\w+)*)?\s*\{" > > openSymbole="\{" closeSymbole="\}"> > <className> > <nameExpr > expr="(class|enum|interface|@interface)\s+\w+(<\s*\w+(,\s*\w+)*\s*>)?"></nameExpr> > <nameExpr expr="\s+\w+(<\s*\w+(,\s*\w+)*\s*>)?"></nameExpr> > <nameExpr expr="\w+(<\s*\w+(,\s*\w+)*\s*>)?"></nameExpr> > </className> > <function mainExpr="^[\t > ]*((public|protected|private|static|final|abstract|synchronized|@(\w)+)\s+)*(\w*(\[\s*])*\s+)?(?!(if|while|for|switch|catch|synchronized)\b)\w+(\[\s*])*(<\s*\w+(,\s*\w+)*\s*>)?\s*\([^\)\(]*\)(\s+throws\s+\w+)?\s*\{"> > <functionName> > <funcNameExpr > expr="(?!(if|while|for|switch|catch|synchronized)\b)\w+(\[\s*])*(<\s*\w+(,\s*\w+)*\s*>)?\s*\("></funcNameExpr> > <funcNameExpr > expr="(?!(if|while|for|switch|catch|synchronized)\b)\w+(\[\s*])*(<\s*\w+(,\s*\w+)*\s*>)?"></funcNameExpr> > </functionName> > </function> > </classRange> > </parser> > > <parser id="c_function" displayName="C source" > commentExpr="((/\*.*?\*)/|(//.*?$))"> > <function > mainExpr="^[\t > ]*((static|const|virtual)[\s]+)?[\w:]+([\s]+[\w]+)?([\s]+|(\*|\*\*)[\s]+|[\s]+(\*|\*\*)|[\s]+(\*|\*\*)[\s]+)([\w_]+[\s]*::)?(?!(if|while|for))[\w_]+[\s]*\([^\)\(]*\)([\s]*const[\s]*)?[\n\s]*\{" > displayMode="$functionName"> > <functionName> > <nameExpr expr="(?!(if|while|for))[\w_~]+[\s]*\("/> > <nameExpr expr="(?!(if|while|for))[\w_~]+"/> > </functionName> > </function> > </parser> > <parser id="js_function" displayName="Javascript" > commentExpr="((/\*.*?\*)/|(//.*?$))"> > <function > > > mainExpr="((^|[\s]+|[;\}\.])([_A-Za-z][\w_]*\.)*[_A-Za-z][\w_]*[\s]*[=:]|^|[\s;\}]+)[\s]*function([\s]+[_A-Za-z]?[\w_]*\([^\)\(]*\)|\([^\)\(]*\))[\n\s]*\{" > displayMode="$className->$functionName"> > <functionName> > <nameExpr expr="[_A-Za-z][\w_]*[\s]*[=:]|[_A-Za-z]?[\w_]*[\s]*\("/> > <nameExpr expr="[_A-Za-z]?[\w_]*"/> > </functionName> > <className> > <nameExpr expr="([_A-Za-z][\w_]*\.)*[_A-Za-z][\w_]*\."/> > <nameExpr expr="([_A-Za-z][\w_]*\.)*[_A-Za-z][\w_]*"/> > </className> > </function> > </parser> > > <parser id="c_cpp_function" displayName="C++ Class" > commentExpr="((/\*.*?\*)/|(//.*?$))"> > <classRange > mainExpr="^[\t ]*(class|struct)[\t > ]+[\w]+[\s]*(:[\s]*(public|protected|private)[\s]+[\w]+[\s]*)?\{" > openSymbole = "\{" > closeSymbole = "\}" > displayMode="node"> > <className> > <nameExpr expr="(class|struct)[\t ]+[\w]+"/> > <nameExpr expr="[\t ]+[\w]+"/> > <nameExpr expr="[\w]+"/> > </className> > <function > mainExpr="^[\t > ]*((static|const|virtual)[\s]+)?([\w]+([\s]+[\w]+)?([\s]+|(\*|\*\*|&)[\s]+|[\s]+(\*|\*\*|&)|[\s]+(\*|\*\*|&)[\s]+))?([\w_]+[\s]*::)?(?!(if|while|for|switch))[\w_~]+[\s]*\([^\)\(]*\)([\s]*const[\s]*)?[\n\s]*\{"> > <functionName> > <funcNameExpr expr="(?!(if|while|for|switch))[\w_~]+[\s]*\("/> > <funcNameExpr expr="(?!(if|while|for|switch))[\w_~]+"/> > </functionName> > </function> > </classRange> > <function > mainExpr="^[\t > ]*((static|const|virtual)[\s]+)?[\w]+([\s]+[\w]+)?([\s]+|(\*|\*\*|&)[\s]+|[\s]+(\*|\*\*|&)|[\s]+(\*|\*\*|&)[\s]+)([\w_]+[\s]*::)?(?!(if|while|for))[\w_]+[\s]*\([^\)\(]*\)([\s]*const[\s]*)?[\n\s]*\{" > displayMode="$className->$functionName"> > <functionName> > <nameExpr expr="(?!(if|while|for))[\w_]+[\s]*\("/> > <nameExpr expr="(?!(if|while|for))[\w_]+"/> > </functionName> > <className> > <nameExpr expr="[\w_]+(?=[\s]*::)"/> > </className> > </function> > </parser> > <parser id="nsis_syntax" displayName="NSIS Syntax" > commentExpr="((/\*.*?\*)/|(#.*?$)|(;.*?$))"> > <function > mainExpr="^[\t ]*(!macro|Function|Section|SectionGroup)[\t ]+[^\r\n]*$" > displayMode="$functionName"> > <functionName> > <nameExpr expr="(?(?=[\t ]*!macro)[\t ]*!macro[\t ]+[^\s]+|[^\r\n]*)"/> > </functionName> > </function> > </parser> > <parser id="perl_function" displayName="Perl"> > <function > mainExpr="^[\s]*(?<!#)[\s]*sub[\s]+[\w]+[\s]*\(?[^\)\(]*?\)?[\n\s]*\{" > displayMode="$className->$functionName"> > <functionName> > <nameExpr expr="(sub[\s]+)?\K[\w]+"/> > </functionName> > <className> > <nameExpr expr="[\w]+(?=[\s]*::)"/> > </className> > </function> > </parser> > <parser id="php_function" displayName="PHP" > commentExpr="((/\*.*?\*)/|(//.*?$))"> > <classRange > > mainExpr="^[\s]*(class|abstract[\s]+class|final[\s]+class)[\t > ]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*([\s]*|[\s]*(extends|implements|(extends[\s]+(\\|[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)+[\s]+implements))[\s]+(\,[\s]*|(\\|[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))+[\s]*)?\{" > openSymbole = "\{" > closeSymbole = "\}" > displayMode="node"> > <className> > <nameExpr > expr="(class|abstract[\s]+class|final[\s]+class)[\s]+[\w]+"/> > <nameExpr expr="[\s]+[\w]+\Z"/> > <nameExpr expr="[\w]+\Z"/> > </className> > <function > > mainExpr="^[\s]*((static|public|protected|private|final)*(\s+(static|public|protected|private|final))+[\s]+)?(function[\s]+)+([\w]+([\s]+[\w]+)?([\s]+|\*[\s]+|[\s]+\*|[\s]+\*[\s]+))?([\w_]+[\s]*::)?(?!(if|while|for|switch))[\w_~]+[\s]*\([^\{]*\{"> > <functionName> > <funcNameExpr > expr="(?!(if|while|for|switch))[\w_]+[\s]*\([^\{]*"/> > <!-- comment below node if want display method > with parmas --> > <funcNameExpr > expr="(?!(if|while|for|switch))[\w_]+"/> > </functionName> > </function> > </classRange> > <function > mainExpr="^[\s]*function[\s]+\w+\(" > > displayMode="$className->$functionName"> > <functionName> > <nameExpr expr="(?!(if|while|for))[\w_]+[\s]*\("/> > <nameExpr expr="(?!(if|while|for))[\w_]+"/> > </functionName> > <className> > <nameExpr expr="[\w_]+(?=[\s]*::)"/> > </className> > </function> > </parser> > <parser id="bash_function" displayName="Shell" commentExpr="(#.*?$)"> > <function > mainExpr="^[\t ]*(function[\t\r\n ]*)?([a-zA-Z0-9_])+[\t\r\n > ]*(\([^\)]*\))?[\t\r\n ]*(\{)[^(\})\r\n\t ]*" > displayMode="$functionName"> > <functionName> > <nameExpr expr="[^{]*"/> > </functionName> > </function> > </parser> > <parser id="python_function" displayName="Python class" > commentExpr="(#.*?$|'''.*?('''|\Z))"> > <classRange mainExpr="(?<=^class ).*?(?=\n\S|\Z)"> > <className> > <nameExpr expr="\w+(?=[\(|:])"/> > </className> > <function mainExpr="(?<=def ).+?(?=:)"> > <functionName> > <funcNameExpr expr=".*"/> > </functionName> > </function> > </classRange> > <function mainExpr="(?<=def ).+?(?=:)"> > <functionName> > <funcNameExpr expr=".*"/> > </functionName> > </function> > </parser> > <parser id="cs_function" displayName="C# Class" > commentExpr="((/\*.*?\*)/|(//.*?$))"> > <classRange > mainExpr="^[\t > ]*((public|protected|private|internal)[\s]+)?([\w]+[\s]*)?(class|struct|interface)[\t > > ]+[^\{]+\{" > openSymbole = "\{" > closeSymbole = "\}" > displayMode="node"> > <className> > <nameExpr expr="(class|struct|interface)[\t ]+[\w]+"/> > <nameExpr expr="[\t ]+[\w]+"/> > <nameExpr expr="[\w]+"/> > </className> > <function > > mainExpr="^[^\S\r\n]*(?<modifier1>(?:public|protected|internal|private)\s*)?(?<modifier2>(?:new|static|virtual|sealed|override|abstract|extern)\s*)?(partial\s*)?(?<type>(?!(return|if|else))\w+(?<genericType><[\w,\s<>]+>)?\s+)(?<name>\w+(?<genericNameType><[\w,\s<>]+>)?\s?)\((?<params>[\w\s,<>\[\]\:=\.]*)\)(?<ctorChain>\s*\:\s*(?:base|this)\s*\((?<ctorParams>[\w\s,<>\[\]\:=\.]*)\))?[\w\s<>\:,\(\)\[\]]*(?:\{|;)"> > <functionName> > <funcNameExpr expr="(\w+(<[\w,\s<>]+>)?\s?)\("/> > <funcNameExpr expr="(\w+(<[\w,\s<>]+>)?\s?)"/> > </functionName> > </function> > </classRange> > <function mainExpr=""> > </function> > </parser> > > <parser id="lisp_function" displayName="Lisp" > commentExpr="(;.*?$)|((;.)?$)"> > <function > > > mainExpr="\(\s*((definline|(def[a-z\-]*)|defmatch|defmethod|defmulti|defn|defn-|defonce|defstruct)\-?)\s" > displayMode="$functionName"> > <functionName> > <funcNameExpr > expr="\(\s*((definline|(def[a-z\-]*)|defmatch|defmethod|defmulti|defn|defn-|defonce|defstruct)\-?)\s([A-Za-z0-9-]+)"/> > </functionName> > </function> > </parser> > > </parsers> > </functionList> > </NotepadPlus> > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.