@@ -39,70 +39,6 @@ class Snippet {
3939 }
4040}
4141
42- class StyleServer implements vsc . CompletionItemProvider , vsc . HoverProvider {
43-
44- private regex = [
45- / s t y l e = [ " | ' ] ( [ ^ " ^ ' ] * $ ) / i //,
46- // /<style[^\<\s\S]*\>([^\<]*)/i
47- ] ;
48-
49- private convertCompletionList ( list : lst . CompletionList ) : vsc . CompletionList {
50- let ci : vsc . CompletionItem [ ] = [ ] ;
51- for ( let i = 0 ; i < list . items . length ; i ++ ) {
52- ci [ i ] = new vsc . CompletionItem ( list . items [ i ] . label ) ;
53- ci [ i ] . detail = list . items [ i ] . detail ;
54- ci [ i ] . documentation = list . items [ i ] . documentation ;
55- ci [ i ] . filterText = list . items [ i ] . filterText ;
56- ci [ i ] . insertText = list . items [ i ] . insertText ;
57- ci [ i ] . kind = list . items [ i ] . kind ;
58- ci [ i ] . sortText = list . items [ i ] . sortText ;
59- }
60- return new vsc . CompletionList ( ci , list . isIncomplete ) ;
61- }
62-
63- private createSnippet ( document : vsc . TextDocument , position : vsc . Position ) : Snippet {
64- let start = new vsc . Position ( 0 , 0 ) ;
65- let range = new vsc . Range ( start , position ) ;
66- let text = document . getText ( range ) ;
67-
68- let tag = this . regex [ 0 ] . exec ( text ) ;
69- if ( tag ) {
70- return new Snippet ( '.c {\n' + tag [ 1 ] , position . character ) ;
71- }
72-
73- // tag = this.regex[1].exec(text);
74- // if (tag) {
75- // return new Snippet(tag[1], position.character);
76- // }
77-
78- return null ;
79- }
80-
81- provideCompletionItems ( document : vsc . TextDocument , position : vsc . Position , token : vsc . CancellationToken ) : vsc . CompletionList {
82- let snippet = this . createSnippet ( document , position ) ;
83-
84- if ( snippet ) {
85- let result = service . doComplete ( snippet . document , snippet . position , snippet . stylesheet ) ;
86- return this . convertCompletionList ( result ) ;
87- }
88- return null ;
89- }
90-
91- resolveCompletionItem ( item : vsc . CompletionItem , token : vsc . CancellationToken ) : vsc . CompletionItem {
92- return item ;
93- }
94-
95- provideHover ( document : vsc . TextDocument , position : vsc . Position , token : vsc . CancellationToken ) : vsc . Hover {
96- let snippet = this . createSnippet ( document , position ) ;
97-
98- if ( snippet ) {
99- let result = service . doHover ( snippet . document , snippet . position , snippet . stylesheet ) ;
100- return new vsc . Hover ( result . contents ) ;
101- }
102- return null ;
103- }
104- }
105-
10642class ClassServer implements vsc . CompletionItemProvider {
10743
10844 private regex = [
@@ -188,96 +124,54 @@ function parse(uri: vsc.Uri): void {
188124export function activate ( context : vsc . ExtensionContext ) {
189125
190126 if ( vsc . workspace . rootPath ) {
191- let resourceJson = path . resolve ( vsc . workspace . rootPath , 'resource.json' ) ;
192- let resourceJsonPaths = [ ] ;
193-
194- fs . readFile ( resourceJson , 'utf8' , function ( err : any , data : string ) {
195- let glob = '**/*.css' ;
196127
197- if ( err ) {
198- vsc . workspace . findFiles ( glob , '' ) . then ( function ( uris : vsc . Uri [ ] ) {
199- for ( let i = 0 ; i < uris . length ; i ++ ) {
200- parse ( uris [ i ] ) ;
201- }
202- } ) ;
203- } else {
204- let resources = JSON . parse ( data ) ;
128+ let glob = '**/*.css' ;
205129
206- for ( let key in resources . css ) {
207- for ( let resource of resources . css [ key ] ) {
208- let uri = vsc . Uri . file ( path . resolve ( vsc . workspace . rootPath , resource ) ) ;
209- resourceJsonPaths . push ( uri . fsPath ) ;
210- parse ( uri ) ;
211- }
212- }
130+ vsc . workspace . findFiles ( glob , '' ) . then ( function ( uris : vsc . Uri [ ] ) {
131+ for ( let i = 0 ; i < uris . length ; i ++ ) {
132+ parse ( uris [ i ] ) ;
213133 }
134+ } ) ;
214135
215- let watcher = vsc . workspace . createFileSystemWatcher ( glob ) ;
216-
217- watcher . onDidCreate ( function ( uri : vsc . Uri ) {
218- if ( resourceJsonPaths . length === 0 || resourceJsonPaths . indexOf ( uri . fsPath ) !== - 1 ) {
219- parse ( uri ) ;
220- }
221- } ) ;
222- watcher . onDidChange ( function ( uri : vsc . Uri ) {
223- if ( resourceJsonPaths . length === 0 || resourceJsonPaths . indexOf ( uri . fsPath ) !== - 1 ) {
224- parse ( uri ) ;
225- }
226- } ) ;
227- watcher . onDidDelete ( function ( uri : vsc . Uri ) {
228- delete map [ uri . fsPath ] ;
229- } ) ;
136+ let watcher = vsc . workspace . createFileSystemWatcher ( glob ) ;
230137
231- context . subscriptions . push ( watcher ) ;
138+ watcher . onDidCreate ( function ( uri : vsc . Uri ) {
139+ parse ( uri ) ;
140+ } ) ;
141+ watcher . onDidChange ( function ( uri : vsc . Uri ) {
142+ parse ( uri ) ;
143+ } ) ;
144+ watcher . onDidDelete ( function ( uri : vsc . Uri ) {
145+ delete map [ uri . fsPath ] ;
232146 } ) ;
233- }
234-
235- // let styleServer = new StyleServer();
236147
237- //context.subscriptions.push(vsc.languages.registerCompletionItemProvider(
238- // ['html', 'laravel-blade', 'razor', 'vue', 'blade'], styleServer));
239- //context.subscriptions.push(vsc.languages.registerHoverProvider(
240- // ['html', 'laravel-blade', 'razor', 'vue', 'blade'], styleServer));
148+ context . subscriptions . push ( watcher ) ;
149+ } ;
241150
242151 let classServer = new ClassServer ( ) ;
243152
244- context . subscriptions . push ( vsc . languages . registerCompletionItemProvider (
245- [ 'html' , 'laravel-blade' , 'razor' , 'vue' , 'blade' , 'pug' , 'jade' , 'handlebars' ] , classServer ) ) ;
153+ context . subscriptions . push ( vsc . languages . registerCompletionItemProvider ( [
154+ 'html' ,
155+ 'laravel-blade' ,
156+ 'razor' ,
157+ 'vue' ,
158+ 'blade' ,
159+ 'pug' ,
160+ 'jade' ,
161+ 'handlebars' ,
162+ 'php'
163+ ] , classServer ) ) ;
246164
247- // https://github.com/Microsoft/vscode/issues/13675
248165 let wp = / ( - ? \d * \. \d \w * ) | ( [ ^ \` \~ \! \@ \# \% \^ \& \* \( \) \= \+ \[ \{ \] \} \\ \| \; \: \' \. \" \, \< \> \/ \? \s ] + ) / g;
249166
250- // context.subscriptions.push(vsc.languages.setLanguageConfiguration('html', {
251- // wordPattern: wp
252- // }));
253-
254- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'laravel-blade' , {
255- wordPattern : wp
256- } ) ) ;
257-
258- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'razor' , {
259- wordPattern : wp
260- } ) ) ;
261-
262- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'vue' , {
263- wordPattern : wp
264- } ) ) ;
265-
266- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'blade' , {
267- wordPattern : wp
268- } ) ) ;
269-
270- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'pug' , {
271- wordPattern : wp
272- } ) ) ;
273-
274- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'jade' , {
275- wordPattern : wp
276- } ) ) ;
277-
278- context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'handlebars' , {
279- wordPattern : wp
280- } ) ) ;
167+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'laravel-blade' , { wordPattern : wp } ) ) ;
168+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'razor' , { wordPattern : wp } ) ) ;
169+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'vue' , { wordPattern : wp } ) ) ;
170+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'blade' , { wordPattern : wp } ) ) ;
171+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'pug' , { wordPattern : wp } ) ) ;
172+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'jade' , { wordPattern : wp } ) ) ;
173+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'handlebars' , { wordPattern : wp } ) ) ;
174+ context . subscriptions . push ( vsc . languages . setLanguageConfiguration ( 'php' , { wordPattern : wp } ) ) ;
281175}
282176
283177export function deactivate ( ) {
0 commit comments