Skip to content

Commit f963ce6

Browse files
committed
support for a language
1 parent 6332a66 commit f963ce6

File tree

2 files changed

+191
-3
lines changed

2 files changed

+191
-3
lines changed

Lua/Plugins/js.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
highlight("var", "reserved")
22
highlight("const", "reserved")
33
highlight("new", "reserved")
4+
highlight("let", "reserved")
45

56
highlight("while", "reserved")
67
highlight("for", "reserved")
@@ -32,6 +33,7 @@ highlight("throw", "reserved")
3233
highlight("continue", "reserved")
3334
highlight("break", "reserved")
3435
highlight("yield", "reserved")
36+
highlight("constructor", "reserved")
3537

3638
highlight("instanceof", "reserved")
3739
highlight("typeof", "reserved")
@@ -130,9 +132,7 @@ function detect_variables(content)
130132
"__dirname",
131133
"__filename",
132134
"module",
133-
"exports"
134-
}
135-
local lines = content:gmatch("[^\r\n]+")
135+
"exports"highlight("constructor", "reserved")
136136

137137
for line in lines do
138138
if trim(line):find("^let ") or trim(line):find("^var ") or trim(line):find("^const ") then

Lua/Plugins/yap.lua

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
highlight("connotate", "reserved")
2+
highlight("derives", "reserved")
3+
highlight("variable", "reserved")
4+
highlight("synchronised", "reserved")
5+
highlight("unsynchronised", "reserved")
6+
highlight("constant", "reserved")
7+
highlight("mutable", "reserved")
8+
highlight("volatile", "reserved")
9+
highlight("stable", "reserved")
10+
highlight("independent", "reserved")
11+
highlight("depdendent", "reserved")
12+
highlight("invariable", "reserved")
13+
highlight("void", "reserved")
14+
highlight("ratify", "reserved")
15+
highlight("subroutine", "reserved")
16+
highlight("?", "reserved")
17+
highlight("transient", "reserved")
18+
highlight("classification", "reserved")
19+
highlight("extemporize", "reserved")
20+
highlight("aforementioned", "variable")
21+
highlight("epitomise", "reserved")
22+
highlight("stipulate", "reserved")
23+
highlight("otherwise", "reserved")
24+
highlight("compeer", "reserved")
25+
highlight("towards", "reserved")
26+
highlight("within", "reserved")
27+
highlight("nonfulfillment", "reserved")
28+
29+
highlight("neither", "binary")
30+
highlight("both", "binary")
31+
highlight("maybe", "binary")
32+
highlight("trueish", "binary")
33+
highlight("falseish", "binary")
34+
highlight("depends", "binary")
35+
highlight("complicated", "binary")
36+
--
37+
highlight("var", "reserved")
38+
highlight("let", "reserved")
39+
highlight("const", "reserved")
40+
highlight("new", "reserved")
41+
42+
highlight("while", "reserved")
43+
highlight("for", "reserved")
44+
45+
highlight("if", "reserved")
46+
highlight("else", "reserved")
47+
highlight("try", "reserved")
48+
highlight("catch", "reserved")
49+
50+
highlight("extends", "reserved")
51+
highlight("typeof", "reserved")
52+
highlight("void", "reserved")
53+
54+
highlight("in", "reserved")
55+
highlight("of", "reserved")
56+
highlight("with", "reserved")
57+
58+
highlight("import", "reserved")
59+
highlight("finally", "reserved")
60+
highlight("delete", "reserved")
61+
62+
highlight("class", "reserved")
63+
highlight("function", "reserved")
64+
highlight("return", "reserved")
65+
highlight("export", "reserved")
66+
highlight("async", "reserved")
67+
highlight("await", "reserved")
68+
highlight("throw", "reserved")
69+
highlight("continue", "reserved")
70+
highlight("break", "reserved")
71+
highlight("yield", "reserved")
72+
73+
highlight("instanceof", "reserved")
74+
highlight("typeof", "reserved")
75+
highlight("switch", "reserved")
76+
highlight("case", "reserved")
77+
highlight("default", "reserved")
78+
highlight("do", "reserved")
79+
80+
highlight("false", "binary")
81+
highlight("true", "binary")
82+
highlight("null", "binary")
83+
highlight("undefined", "binary")
84+
85+
highlight("+", "operator")
86+
highlight("-", "operator")
87+
highlight("/", "operator")
88+
highlight("*", "operator")
89+
highlight("+=", "operator")
90+
highlight("-=", "operator")
91+
highlight("/=", "operator")
92+
highlight("*=", "operator")
93+
highlight("<", "operator")
94+
highlight(">", "operator")
95+
highlight("<=", "operator")
96+
highlight(">=", "operator")
97+
highlight("%", "operator")
98+
highlight("==", "operator")
99+
highlight("===", "operator")
100+
highlight("!=", "operator")
101+
highlight("!==", "operator")
102+
103+
highlight("{", "binary")
104+
highlight("}", "binary")
105+
highlight("[", "binary")
106+
highlight("]", "binary")
107+
108+
highlight("this", "variable")
109+
110+
highlight_region("\"", "\"", "string", true)
111+
highlight_region("'", "'", "string", true)
112+
highlight_region("`", "`", "string")
113+
highlight_region("/*", "*/", "comments")
114+
highlight_region("//", "", "comments", true)
115+
116+
--- comments
117+
add_comment("yap yap yap yap yap")
118+
add_comment("its the funny language 🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️‼️‼️💥💥💥🤯")
119+
add_comment("typescript better 💀💀💀")
120+
add_comment("lil bro ain't onto something")
121+
122+
--- autocomplete
123+
124+
function detect_functions(content)
125+
local functionNames = {}
126+
127+
local lines = {}
128+
for line in content:gmatch("[^\r\n]+") do
129+
table.insert(lines, line)
130+
end
131+
132+
for _, line in ipairs(lines) do
133+
local trimmedLine = trim(line)
134+
135+
-- Look for function, async function, subroutine, or ? (class) function definitions
136+
if trimmedLine:find("function ") or
137+
trimmedLine:find("async ") or
138+
trimmedLine:find("subroutine ") or
139+
trimmedLine:find("%w%s?") then
140+
local functionName =
141+
string.match(trimmedLine:gsub("{", ""), "%w+%s+%?") or
142+
string.match(trimmedLine:gsub("{", ""), "%.?function%s+(.-)%s*%(") or
143+
string.match(trimmedLine:gsub("{", ""), "%.?subroutine%s+(.-)%s*%(") or
144+
string.match(trimmedLine:gsub("{", ""), "%.?async%s+(.-)%s*%(")
145+
146+
if functionName:find("?") then
147+
functionName = functionName.gsub(functionName, "?", "")
148+
functionName = trim(functionName)
149+
end
150+
151+
table.insert(functionNames, functionName)
152+
end
153+
end
154+
155+
return functionNames
156+
end
157+
158+
function detect_variables(content)
159+
local variable_names = {
160+
"global",
161+
"process",
162+
"console",
163+
"Buffer",
164+
"__dirname",
165+
"__filename",
166+
"module",
167+
"exports"
168+
}
169+
local lines = content:gmatch("[^\r\n]+")
170+
171+
for line in lines do
172+
local is_yap = trim(line):find("variable ")
173+
if is_yap or trim(line):find("let ") or trim(line):find("var ") or trim(line):find("const ") then
174+
local parts = splitstr(line, "=")
175+
if #parts > 0 then
176+
local variable_name = trim(splitstr(trim(parts[1]), " ")[2])
177+
178+
if is_yap then
179+
variable_name = splitstr(trim(parts[1]), " ")[4]
180+
variable_name = variable_name:gsub("[^a-zA-Z]", "")
181+
end
182+
table.insert(variable_names, variable_name)
183+
end
184+
end
185+
end
186+
187+
return variable_names
188+
end

0 commit comments

Comments
 (0)