Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"leaves":["greet","describe"],"root":"unitTest"}
36 changes: 36 additions & 0 deletions UDL-samples/Elvish_byHoangLong.elv
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# UDL sample for Notepad++ Elvish syntax highlighting and Function List.
# Open this file after installing the UDL and Function List parser.

use str

var greeting = "Xin chao"
var names = [Ada Grace Linus]
var settings = [&punctuation=! &enabled=$true]

fn greet {|name|
echo $greeting", "$name$settings[punctuation]
}

fn describe {|value|
if (str:has-suffix $value .elv) {
echo $value" is an Elvish file"
} else {
echo "value: "$value
}
}

for name $names {
greet $name
}

put $names | each {|name|
echo "Hello, "$name
}

try {
fail "sample error"
} catch err {
echo $err[reason]
} finally {
echo "finished"
}
66 changes: 66 additions & 0 deletions UDLs/Elvish_byHoangLong.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Builtin and language names derived from the official Elvish source: https://github.com/elves/elvish -->
<NotepadPlus>
<UserLang name="Elvish" ext="elv" udlVersion="2.1">
<Settings>
<Global caseIgnored="no" allowFoldOfComments="no" foldCompact="yes" forcePureLC="0" decimalSeparator="0" />
<Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
</Settings>
<KeywordLists>
<Keywords name="Comments">00# 01 02 03 04</Keywords>
<Keywords name="Numbers, prefix1">0x 0o 0b</Keywords>
<Keywords name="Numbers, prefix2"></Keywords>
<Keywords name="Numbers, extras1"></Keywords>
<Keywords name="Numbers, extras2"></Keywords>
<Keywords name="Numbers, suffix1"></Keywords>
<Keywords name="Numbers, suffix2"></Keywords>
<Keywords name="Numbers, range">..</Keywords>
<Keywords name="Operators1">! % &amp; ( ) * + , - / : ; &lt; = &gt; ? @ [ ] ^ { } ~</Keywords>
<Keywords name="Operators2">!= &lt;= == =&gt; &gt;=</Keywords>
<Keywords name="Folders in code1, open">{</Keywords>
<Keywords name="Folders in code1, middle"></Keywords>
<Keywords name="Folders in code1, close">}</Keywords>
<Keywords name="Folders in code2, open"></Keywords>
<Keywords name="Folders in code2, middle"></Keywords>
<Keywords name="Folders in code2, close"></Keywords>
<Keywords name="Folders in comment, open"></Keywords>
<Keywords name="Folders in comment, middle"></Keywords>
<Keywords name="Folders in comment, close"></Keywords>
<Keywords name="Keywords1">var set tmp with del fn use and or coalesce if while for try pragma</Keywords>
<Keywords name="Keywords2">else catch finally</Keywords>
<Keywords name="Keywords3">$false $true</Keywords>
<Keywords name="Keywords4">all assoc base benchmark bool break call cd compact compare conj constantly continue count defer deprecate derender-styledown dissoc drop each echo eq eval exact-num exec exit external fail from-json from-lines from-terminated get-env has-env has-external has-key has-value inexact-num is keep-if keys kind-of make-map nop not not-eq ns num one only-bytes only-values order peach pprint print printf put rand randint range read-bytes read-line read-upto render-styledown repeat repr resolve return run-parallel search-external set-env show sleep slurp src styled styled-segment take tilde-abbr time to-json to-lines to-string to-terminated unset-env use-mod wcswidth</Keywords>
<Keywords name="Keywords5">builtin: edit: e: E: epm: file: math: os: path: platform: re: str: unix:</Keywords>
<Keywords name="Keywords6">&lt; &lt;= &lt;s &lt;=s == ==s != !=s !=s &gt; &gt;= &gt;s &gt;=s + - * / %</Keywords>
<Keywords name="Keywords7">randint range put echo fail cd external</Keywords>
<Keywords name="Keywords8">$args $dir $false $home $nil $pid $pwd $true</Keywords>
<Keywords name="Delimiters">00" 01 02" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 </Keywords>
</KeywordLists>
<Styles>
<WordsStyle name="DEFAULT" fgColor="202124" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="COMMENTS" fgColor="667085" bgColor="FFFFFF" fontStyle="2" nesting="0" />
<WordsStyle name="LINE COMMENTS" fgColor="667085" bgColor="FFFFFF" fontStyle="2" nesting="0" />
<WordsStyle name="NUMBERS" fgColor="098658" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS1" fgColor="AF00DB" bgColor="FFFFFF" fontStyle="1" nesting="0" />
<WordsStyle name="KEYWORDS2" fgColor="AF00DB" bgColor="FFFFFF" fontStyle="1" nesting="0" />
<WordsStyle name="KEYWORDS3" fgColor="0000FF" bgColor="FFFFFF" fontStyle="1" nesting="0" />
<WordsStyle name="KEYWORDS4" fgColor="795E26" bgColor="FFFFFF" fontStyle="1" nesting="0" />
<WordsStyle name="KEYWORDS5" fgColor="267F99" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS6" fgColor="795E26" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS7" fgColor="795E26" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS8" fgColor="001080" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="OPERATORS" fgColor="383A42" bgColor="FFFFFF" fontStyle="1" nesting="0" />
<WordsStyle name="FOLDER IN CODE1" fgColor="383A42" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="FOLDER IN CODE2" fgColor="383A42" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="FOLDER IN COMMENT" fgColor="667085" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS1" fgColor="A31515" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
</Styles>
</UserLang>
</NotepadPlus>
134 changes: 134 additions & 0 deletions autoCompletion/Elvish.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Builtin names based on https://github.com/elves/elvish -->
<NotepadPlus>
<AutoComplete language="Elvish">
<Environment ignoreCase="no" additionalWordChar="$:-~" />
<KeyWord name="$E:PATH" />
<KeyWord name="$args" />
<KeyWord name="$dir" />
<KeyWord name="$false" />
<KeyWord name="$home" />
<KeyWord name="$nil" />
<KeyWord name="$ok" />
<KeyWord name="$pid" />
<KeyWord name="$pwd" />
<KeyWord name="$true" />
<KeyWord name="E:" />
<KeyWord name="all" />
<KeyWord name="and" />
<KeyWord name="assoc" />
<KeyWord name="base" />
<KeyWord name="benchmark" />
<KeyWord name="bool" />
<KeyWord name="break" />
<KeyWord name="builtin:" />
<KeyWord name="call" />
<KeyWord name="catch" />
<KeyWord name="cd" />
<KeyWord name="coalesce" />
<KeyWord name="compact" />
<KeyWord name="compare" />
<KeyWord name="conj" />
<KeyWord name="constantly" />
<KeyWord name="continue" />
<KeyWord name="count" />
<KeyWord name="defer" />
<KeyWord name="del" />
<KeyWord name="deprecate" />
<KeyWord name="derender-styledown" />
<KeyWord name="dissoc" />
<KeyWord name="drop" />
<KeyWord name="e:" />
<KeyWord name="each" />
<KeyWord name="echo" />
<KeyWord name="edit:" />
<KeyWord name="else" />
<KeyWord name="epm:" />
<KeyWord name="eq" />
<KeyWord name="eval" />
<KeyWord name="exact-num" />
<KeyWord name="exec" />
<KeyWord name="exit" />
<KeyWord name="external" />
<KeyWord name="fail" />
<KeyWord name="file:" />
<KeyWord name="finally" />
<KeyWord name="fn" />
<KeyWord name="for" />
<KeyWord name="from-json" />
<KeyWord name="from-lines" />
<KeyWord name="from-terminated" />
<KeyWord name="get-env" />
<KeyWord name="has-env" />
<KeyWord name="has-external" />
<KeyWord name="has-key" />
<KeyWord name="has-value" />
<KeyWord name="if" />
<KeyWord name="inexact-num" />
<KeyWord name="is" />
<KeyWord name="keep-if" />
<KeyWord name="keys" />
<KeyWord name="kind-of" />
<KeyWord name="make-map" />
<KeyWord name="math:" />
<KeyWord name="nop" />
<KeyWord name="not" />
<KeyWord name="not-eq" />
<KeyWord name="ns" />
<KeyWord name="num" />
<KeyWord name="one" />
<KeyWord name="only-bytes" />
<KeyWord name="only-values" />
<KeyWord name="or" />
<KeyWord name="order" />
<KeyWord name="os:" />
<KeyWord name="path:" />
<KeyWord name="peach" />
<KeyWord name="platform:" />
<KeyWord name="pprint" />
<KeyWord name="pragma" />
<KeyWord name="print" />
<KeyWord name="printf" />
<KeyWord name="put" />
<KeyWord name="rand" />
<KeyWord name="randint" />
<KeyWord name="range" />
<KeyWord name="re:" />
<KeyWord name="read-bytes" />
<KeyWord name="read-line" />
<KeyWord name="read-upto" />
<KeyWord name="render-styledown" />
<KeyWord name="repeat" />
<KeyWord name="repr" />
<KeyWord name="resolve" />
<KeyWord name="return" />
<KeyWord name="run-parallel" />
<KeyWord name="search-external" />
<KeyWord name="set" />
<KeyWord name="set-env" />
<KeyWord name="show" />
<KeyWord name="sleep" />
<KeyWord name="slurp" />
<KeyWord name="src" />
<KeyWord name="str:" />
<KeyWord name="styled" />
<KeyWord name="styled-segment" />
<KeyWord name="take" />
<KeyWord name="tilde-abbr" />
<KeyWord name="time" />
<KeyWord name="tmp" />
<KeyWord name="to-json" />
<KeyWord name="to-lines" />
<KeyWord name="to-string" />
<KeyWord name="to-terminated" />
<KeyWord name="try" />
<KeyWord name="unix:" />
<KeyWord name="unset-env" />
<KeyWord name="use" />
<KeyWord name="use-mod" />
<KeyWord name="var" />
<KeyWord name="wcswidth" />
<KeyWord name="while" />
<KeyWord name="with" />
</AutoComplete>
</NotepadPlus>
8 changes: 8 additions & 0 deletions functionList/Elvish_byHoangLong.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<NotepadPlus>
<functionList>
<parser id="elvish_function" displayName="Elvish" commentExpr="(?m-s)^[\t ]*#.*$">
<function mainExpr="(?m)^[\t ]*fn[\t ]+\K(?:'[^'\r\n]+'|[A-Za-z_][A-Za-z0-9_:-]*)" />
</parser>
</functionList>
</NotepadPlus>
13 changes: 13 additions & 0 deletions udl-list.json
Original file line number Diff line number Diff line change
Expand Up @@ -1040,6 +1040,19 @@
"autoCompletion": "elf",
"autoCompletionAuthor": "generate_ac.py"
},
{
"id-name": "Elvish_byHoangLong",
"display-name": "Elvish",
"version": "v1.0.0",
"sample": "Elvish_byHoangLong.elv",
"repository": "",
"description": "User Defined Language, autocompletion, and Function List for Elvish.",
"author": "HoangLong <mailto:hoanglongcodes@gmail.com>",
"homepage": "https://github.com/Hoang-Long2012/Elvish_Notepad-Plus-Plus_UDL",
"autoCompletion": "Elvish",
"autoCompletionAuthor": "generate_ac.py",
"functionList": true
},
{
"id-name": "Emailheader_byPeterFisk",
"display-name": "Email header",
Expand Down