@@ -15,9 +15,12 @@ import {
1515
1616let client : LanguageClient ;
1717let languageServerRunning = false ;
18+
1819const ZSconfig = vscode . workspace . getConfiguration ( 'ZeroSyntax' ) ;
1920const EditorConfig = vscode . workspace . getConfiguration ( 'editor' )
2021
22+ let forceAddModule = ZSconfig . get < boolean > ( 'forceAddModule' , false )
23+
2124export function activate ( context : vscode . ExtensionContext ) {
2225
2326 // const command = "extension.formatDocument";
@@ -26,21 +29,17 @@ export function activate(context: vscode.ExtensionContext) {
2629
2730 let languageServerRunning = ZSconfig . get < boolean > ( 'serverStartupSetting' , false ) ; // Default to 2 if not set
2831
29- context . subscriptions . push ( vscode . languages . registerDocumentFormattingEditProvider ( 'ini' , {
30- provideDocumentFormattingEdits : ( document : vscode . TextDocument ) : vscode . TextEdit [ ] => {
31- return formatDocument ( document ) ;
32- }
33- } ) ) ;
34-
3532 context . subscriptions . push ( vscode . commands . registerCommand ( 'ZeroSyntax.stopLanguageServer' , ( ) => {
3633 if ( languageServerRunning ) {
34+ console . log ( `Stopping LS...` )
3735 client . stop ( ) ;
3836 languageServerRunning = false ;
3937 }
4038 } ) ) ;
4139
4240 context . subscriptions . push ( vscode . commands . registerCommand ( 'ZeroSyntax.startLanguageServer' , ( ) => {
4341 if ( ! languageServerRunning ) {
42+ console . log ( `Starting LS...` )
4443 client . start ( ) ;
4544 languageServerRunning = true ;
4645 }
@@ -59,7 +58,7 @@ export function activate(context: vscode.ExtensionContext) {
5958 run : { module : serverModule , transport : TransportKind . ipc } ,
6059 debug : {
6160 module : serverModule ,
62- transport : TransportKind . ipc ,
61+ transport : TransportKind . ipc
6362 }
6463 } ;
6564
@@ -70,16 +69,13 @@ export function activate(context: vscode.ExtensionContext) {
7069 synchronize : {
7170 // Notify the server about file changes to '.clientrc files contained in the workspace
7271 fileEvents : vscode . workspace . createFileSystemWatcher ( '**/.clientrc' )
73- } ,
74- initializationOptions : {
75- forceAddmodule : ZSconfig . get < boolean > ( 'forceAddModule' , false )
7672 }
7773 } ;
7874
7975 // Create the language client and start the client.
8076 client = new LanguageClient (
81- 'languageServerExample ' ,
82- 'Language Server Example ' ,
77+ 'ZeroSyntax ' ,
78+ 'Zero Hour Language Server' ,
8379 serverOptions ,
8480 clientOptions
8581 ) ;
@@ -90,64 +86,6 @@ export function activate(context: vscode.ExtensionContext) {
9086 }
9187}
9288
93- function formatDocument ( document : vscode . TextDocument ) : vscode . TextEdit [ ] {
94- const edits : vscode . TextEdit [ ] = [ ] ;
95- let indentlevel = 0 ;
96-
97- const indentSize = EditorConfig . get < number > ( 'tabSize' , 2 ) ; // Default to 2 if not set
98-
99- let ObjectsRegex = [ "^\\b([Oo]bject)\\s+[a-zA-Z0-9_]" , "^\\b([Oo]bject[Rr]eskin)\\s+[a-zA-Z0-9_]" , "^\\b([Aa]dd[Mm]odule)$" , "^\\b([Rr]eplace[Mm]odule)" , "^\\b([Dd]efault[Cc]ondition[Ss]tate)$" , "^\\b([Uu]nit[Ss]pecific[Ss]ounds)$" , "^\\b([Pp]rerequisites)$" , "^\\b([Aa]rmor[Ss]et)$" , "^\\b([Ww]eapon[Ss]et)$" , "^\\b([Dd]raw)\\s*=" , "^\\b([Cc]ondition[Ss]tate)\\s*=" , "^\\b([Tt]ransition[Ss]tate)\\s*=" , "^\\b([Bb]ody)\\s*=" , "^\\b([Bb]ehavior)\\s*=" , "^\\b([Cc]lient[Uu]pdate)\\s*=" , "^\\b(Turret)$" ] ;
100- let SimpleClassesRegex = [ "^\\b([Mm]apped[Ii]mage)\\s+[a-zA-Z0-9_]" , "^\\b([Pp]article[Ss]ystem)\\s+[a-zA-Z0-9_]" , "^\\b([Ll]ocomotor)\\s+[a-zA-Z0-9_]" , "^\\b([Aa]udio[Ee]vent)\\s+[a-zA-Z0-9_]" , "^\\b([Dd]ialog[Ee]vent)\\s+[a-zA-Z0-9_]" , "^\\b([Aa]rmor)\\s+[a-zA-Z0-9_]" , "^\\b([Cc]ommand[Ss]et)\\s+[a-zA-Z0-9_]" , "^\\b([Cc]ommand[Bb]utton)\\s+[a-zA-Z0-9_]" , "^\\b([Ww]eapon)\\s+[a-zA-Z0-9_]" , "^\\b([Dd]amage[Ff][Xx])\\s+[A-Za-z0-9_]" , "^\\b([Uu]pgrade)\\s+[a-zA-Z0-9_]" , "^\\b([Pp]layer[Tt]emplate)\\s+[a-zA-Z0-9_]" , "^\\b(Rank)\\s+[1-8]$" , "^\\b([Ii]n[Gg]ame[Uu][Ii])$" , "^\\b(A10StrikeRadiusCursor)$" , "^\\b(AmbushRadiusCursor)$" , "^\\b(ClusterMinesRadiusCursor)$" , "^\\b(AnthraxBombRadiusCursor)$" ] ;
101- let OCLRegex = [ "^\\b([Oo]bject[Cc]reation[Ll]ist)\\s+[a-zA-Z0-9_]" , "^\\b([Cc]reate[Oo]bject)$" , "^\\b([Cc]reate[Dd]ebris)$" , "^\\b([Aa]pply[Rr]andom[Ff]orce)$" , "^\\b([Dd]eliver[Pp]ayload)$" , "^\\b([Dd]elivery[Dd]ecal)$" , "^\\b([Ff]ire[ww]eapon)$" , "^\\b([Aa]ttack)$" ] ;
102- let FXlistRegex = [ "^\\b([Ff][Xx][Ll]ist)\\s+[a-zA-Z0-9_]" , "^\\b([Pp]article[Ss]ystem)$" , "^\\b([Ss]ound)$" , "^\\b([Tt]errain[Ss]corch)$" , "^\\b([Tt]racer)$" , "^\\b([Ll]ight[Pp]ulse)$" , "^\\b([Vv]iew[Ss]hake)$" , "^\\b([Ff][Xx][Ll]ist[Aa]t[Bb]one[Pp]os)$" ] ;
103-
104- let EndRegex = [ "^\\b([Ee]nd)$" , "^\\b(END)$" ]
105-
106- for ( let i = 0 ; i < document . lineCount ; i ++ ) {
107- const lineText = document . lineAt ( i ) . text ;
108- const trimmedLine = lineText . trim ( ) ;
109-
110- for ( let block of EndRegex ) {
111- if ( checkLineWithRegex ( trimmedLine , block ) ) {
112- indentlevel = Math . max ( 0 , indentlevel - 1 ) ;
113- }
114- }
115-
116- const indentedLine = " " . repeat ( indentSize * indentlevel ) + trimmedLine ;
117- const range = new vscode . Range ( i , 0 , i , lineText . length ) ;
118- edits . push ( vscode . TextEdit . replace ( range , indentedLine ) ) ;
119-
120-
121- for ( let block of ObjectsRegex ) {
122- if ( checkLineWithRegex ( trimmedLine , block ) ) {
123- indentlevel ++ ;
124- }
125- }
126- for ( let block of SimpleClassesRegex ) {
127- if ( checkLineWithRegex ( trimmedLine , block ) ) {
128- indentlevel ++ ;
129- }
130- }
131- for ( let block of FXlistRegex ) {
132- if ( checkLineWithRegex ( trimmedLine , block ) ) {
133- indentlevel ++ ;
134- }
135- }
136- for ( let block of OCLRegex ) {
137- if ( checkLineWithRegex ( trimmedLine , block ) ) {
138- indentlevel ++ ;
139- }
140- }
141- }
142-
143- return edits ;
144- }
145-
146- function checkLineWithRegex ( line : string , regex : string ) {
147- let Regex = new RegExp ( regex , "g" ) ;
148- return Regex . test ( line ) ;
149- }
150-
15189vscode . workspace . onDidChangeConfiguration ( ( e ) => {
15290 if ( e . affectsConfiguration ( 'ZeroSyntax.serverStartupSetting' ) ) {
15391 languageServerRunning = ZSconfig . get < boolean > ( 'serverStartupSetting' , false ) ;
0 commit comments