JavaScript
1
0
4
js
string
"
\("\|\n\)
chars
'
\('\|\n\)
cpps_comment
//
\n
cs_comment
/\*
\*/
numeric_constant
<(?i0[X][\\dA-F]+|\\d+(\\.\\d*)?(?:E[+-]?[\\d]+)?F?|\\.\\d+(?:E[+-]?[\\d]+)?F?|[\\d]+[LF]?))
string_escape
(?:\\\\u[\\dA-Faf]{4}|\\\\[0-7]{1,3}|\\\\[btnfr'\"\"\\\\])
primitive
\b\(var\)\b
flow
\b\(break\|case\|catch\|continue\|default\|do\|else\|for\|if\|return\|for\|goto\|if\|return\|switch\|switch\|while\)\b
modifiers
\b\(finally\|private\|protected\|public\|static\)\b
memory
\b\(new\|null\|super\this\|void\)\b
unused
\b\(const\|gotol\|transient\)\b
operators
\(\*\|-)\|::\|<<\|<\|>>\|>\|=\|==\|!=\|<=\|>=\|)=\|++\|--\|%\|+\|-\|||\|&&\|!\|+=\|-=\|\*=\|/=\|%=\)
import glimmer
import string
def js_enter_callback():
insert = "\n"
extralen = 0
slen = 0
file = glimmer.get_file_number()
tstart = glimmer.line_start()
tend = glimmer.current_position()
if (tend-tstart) > 0:
chars = glimmer.get_text(tstart, tend)
slen = len(chars)
if slen > 0:
index = 0
while index < slen:
c = chars[index]
if c == '\t' or c == ' ':
insert = insert + chars[index]
index = index+1
else:
break
c = chars[slen-1]
if c == '{':
extralen = glimmer.get_file_tab_width(file)
if glimmer.get_file_use_spaces(file):
while extralen > 0:
insert = insert + " "
extralen = extralen-1
else:
insert = insert + '\t'
glimmer.insert(insert)
glimmer.register_signal_hook("enter-pressed", js_enter_callback)
def js_tab_callback():
tablen = 0
insertchars = ""
file = glimmer.get_file_number()
if glimmer.get_file_use_spaces(file):
tablen = glimmer.get_file_tab_width(file)
pos = glimmer.current_position()
lstart = glimmer.line_start()
if pos - lstart > 0:
str1 = glimmer.get_text(lstart, pos)
else:
str1 = ""
if glimmer.get_tab_stops():
str1 = string.expandtabs(str1, tablen)
len1 = len(str1)
del str1
tablen = tablen - (len1 % tablen)
while tablen > 0:
insertchars = insertchars + " "
tablen = tablen-1
else:
insertchars = insertchars + "\t"
glimmer.insert(insertchars)
glimmer.register_signal_hook("tab-pressed", js_tab_callback)