diff --git a/Test/functionList/Elvish_byHoangLong/unitTest.expected.result b/Test/functionList/Elvish_byHoangLong/unitTest.expected.result
new file mode 100644
index 0000000..83f852a
--- /dev/null
+++ b/Test/functionList/Elvish_byHoangLong/unitTest.expected.result
@@ -0,0 +1 @@
+{"leaves":["greet","describe"],"root":"unitTest"}
\ No newline at end of file
diff --git a/UDL-samples/Elvish_byHoangLong.elv b/UDL-samples/Elvish_byHoangLong.elv
new file mode 100644
index 0000000..e66c69f
--- /dev/null
+++ b/UDL-samples/Elvish_byHoangLong.elv
@@ -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"
+}
\ No newline at end of file
diff --git a/UDLs/Elvish_byHoangLong.xml b/UDLs/Elvish_byHoangLong.xml
new file mode 100644
index 0000000..34ad555
--- /dev/null
+++ b/UDLs/Elvish_byHoangLong.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+ 00# 01 02 03 04
+ 0x 0o 0b
+
+
+
+
+
+ ..
+ ! % & ( ) * + , - / : ; < = > ? @ [ ] ^ { } ~
+ != <= == => >=
+ {
+
+ }
+
+
+
+
+
+
+ var set tmp with del fn use and or coalesce if while for try pragma
+ else catch finally
+ $false $true
+ 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
+ builtin: edit: e: E: epm: file: math: os: path: platform: re: str: unix:
+ < <= <s <=s == ==s != !=s !=s > >= >s >=s + - * / %
+ randint range put echo fail cd external
+ $args $dir $false $home $nil $pid $pwd $true
+ 00" 01 02" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/autoCompletion/Elvish.xml b/autoCompletion/Elvish.xml
new file mode 100644
index 0000000..0e3b2a8
--- /dev/null
+++ b/autoCompletion/Elvish.xml
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/functionList/Elvish_byHoangLong.xml b/functionList/Elvish_byHoangLong.xml
new file mode 100644
index 0000000..6712d89
--- /dev/null
+++ b/functionList/Elvish_byHoangLong.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/udl-list.json b/udl-list.json
index 6e5e4fd..0c6b7f8 100644
--- a/udl-list.json
+++ b/udl-list.json
@@ -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 ",
+ "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",