-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbash.ts
More file actions
21 lines (17 loc) · 1.65 KB
/
bash.ts
File metadata and controls
21 lines (17 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/// <reference path='syntax.ts'/>
let parseRoutines : Parse_Routine[] = new Array();
parseRoutines.push({reg : new RegExp("(^\\s*)(#.*)", "m"), replacement : "$1<span class='bash_comment'>$2</span>"});
parseRoutines.push({reg : new RegExp("\\$\\((.*)\\)"), replacement : "<span class='bash_shell'>$($1)</span>"});
parseRoutines.push({reg : new RegExp("\\$\\{(.*)\\}"), replacement : "<span class='bash_shell'>${$1}</span>"});
parseRoutines.push({reg : new RegExp(""(.*)""), replacement : "<span class='bash_string'>"$1"</span>"});
parseRoutines.push({reg : new RegExp("(for)"), replacement : "<span class='bash_loop'>$1</span>"});
parseRoutines.push({reg : new RegExp("(in)"), replacement : "<span class='bash_in'>$1</span>"});
parseRoutines.push({reg : new RegExp("(done)"), replacement : "<span class='bash_done'>$1</span>"});
parseRoutines.push({reg : new RegExp("(do)"), replacement : "<span class='bash_do'>$1</span>"});
parseRoutines.push({reg : new RegExp("(cd|cp|rm|mkdir|shnsplit|ffmpeg|cowsay|lolcat)"), replacement : "<span class='bash_common_program'>$1</span>"});
parseRoutines.push({reg : new RegExp("(done)"), replacement : "<span class='bash_done'>$1</span>"});
parseRoutines.push({reg : new RegExp("\\b(\\d+)(?!;)\\b"), replacement : "<span class='bash_number'>$1</span>"});
parseRoutines.push({reg : new RegExp("\\.(\\d+)"), replacement : "<span>.</span><span class='bash_number'>$1</span>"});
parseRoutines.push({reg : new RegExp(" (-?)(\\d+)"), replacement : "<span> $1</span><span class='bash_number'>$2</span>"});
let highlighter : Syntax_Highlighter = new Syntax_Highlighter(parseRoutines);
highlighter.parseAllSnippets();