@@ -15,50 +15,22 @@ import { puppetResourceCommand } from '../src/commands/puppetResourceCommand';
1515import { puppetModuleCommand } from '../src/commands/puppetModuleCommand' ;
1616import * as messages from '../src/messages' ;
1717
18+ const langID = 'puppet' ;
1819var statusBarItem ;
1920var languageServerClient : LanguageClient = undefined ;
2021
21- var host = '127.0.0.1' ;
22- var port = 8081 ;
23- var title = `tcp lang server (host ${ host } port ${ port } )` ;
24- var langID = 'puppet' ;
25-
26- function startLangServerTCP ( host : string , addr : number , documentSelector : string | string [ ] ) : vscode . Disposable {
27- let serverOptions : ServerOptions = function ( ) {
28- return new Promise ( ( resolve , reject ) => {
29- var client = new net . Socket ( ) ;
30- client . connect ( addr , host , function ( ) {
31- resolve ( { reader : client , writer : client } ) ;
32- } ) ;
33- client . on ( 'error' , function ( err ) {
34- console . log ( `[Puppet Lang Server Client] #{err}` ) ;
35- } )
36- } ) ;
37- }
38-
39- let clientOptions : LanguageClientOptions = {
40- documentSelector : [ langID ] ,
41- }
42-
43- languageServerClient = new LanguageClient ( title , serverOptions , clientOptions )
44- languageServerClient . onReady ( ) . then ( ( ) => {
45- languageServerClient . sendRequest ( messages . PuppetVersionRequest . type ) . then ( ( versionDetails ) => {
46- statusBarItem . color = "#affc74" ;
47- statusBarItem . text = "$(terminal) " + versionDetails . puppetVersion ;
48- } ) ;
49- } , ( reason ) => {
50- this . setSessionFailure ( "Could not start language service: " , reason ) ;
51- } ) ;
52-
53- return languageServerClient . start ( ) ;
54- }
55-
5622export function activate ( context : vscode . ExtensionContext ) {
57- console . log ( 'Congratulations, your extension "vscode-puppet" is now active!' ) ;
23+ let config = vscode . workspace . getConfiguration ( 'puppet' ) ;
24+
25+ var host = config [ 'languageserver' ] [ 'address' ] ; // '127.0.0.1';
26+ var port = config [ 'languageserver' ] [ 'port' ] ; // 8081;
27+ var stopOnClientExit = config [ 'languageserver' ] [ 'stopOnClientExit' ] ; // true;
28+ var timeout = config [ 'languageserver' ] [ 'timeout' ] ; // 8081;
29+ var preLoadPuppet = config [ 'languageserver' ] [ 'preLoadPuppet' ] ; // true;
5830
5931 createStatusBarItem ( ) ;
6032
61- context . subscriptions . push ( startLangServerTCP ( host , port , [ langID ] ) ) ;
33+ context . subscriptions . push ( startLangServerTCP ( host , port , langID , [ langID ] ) ) ;
6234
6335 let resourceCommand = new puppetResourceCommand ( languageServerClient ) ;
6436 context . subscriptions . push ( resourceCommand ) ;
@@ -86,12 +58,45 @@ export function activate(context: vscode.ExtensionContext) {
8658 contentProvider . update ( uri ) ;
8759 }
8860 } ) ) ;
61+
62+ console . log ( 'Congratulations, your extension "vscode-puppet" is now active!' ) ;
8963}
9064
9165// this method is called when your extension is deactivated
9266export function deactivate ( ) {
9367}
9468
69+ function startLangServerTCP ( host : string , port : number , langID : string , documentSelector : string | string [ ] ) : vscode . Disposable {
70+ let serverOptions : ServerOptions = function ( ) {
71+ return new Promise ( ( resolve , reject ) => {
72+ var client = new net . Socket ( ) ;
73+ client . connect ( port , host , function ( ) {
74+ resolve ( { reader : client , writer : client } ) ;
75+ } ) ;
76+ client . on ( 'error' , function ( err ) {
77+ console . log ( `[Puppet Lang Server Client] ` + err ) ;
78+ } )
79+ } ) ;
80+ }
81+
82+ let clientOptions : LanguageClientOptions = {
83+ documentSelector : [ langID ] ,
84+ }
85+
86+ var title = `tcp lang server (host ${ host } port ${ port } )` ;
87+ languageServerClient = new LanguageClient ( title , serverOptions , clientOptions )
88+ languageServerClient . onReady ( ) . then ( ( ) => {
89+ languageServerClient . sendRequest ( messages . PuppetVersionRequest . type ) . then ( ( versionDetails ) => {
90+ statusBarItem . color = "#affc74" ;
91+ statusBarItem . text = "$(terminal) " + versionDetails . puppetVersion ;
92+ } ) ;
93+ } , ( reason ) => {
94+ this . setSessionFailure ( "Could not start language service: " , reason ) ;
95+ } ) ;
96+
97+ return languageServerClient . start ( ) ;
98+ }
99+
95100// Status Bar handler
96101export function createStatusBarItem ( ) {
97102 if ( statusBarItem === undefined ) {
0 commit comments