File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change 4646 "dependencies" : {
4747 "vscode-languageclient" : " 2.3.0" ,
4848 "vscode-languageserver" : " 2.2.1" ,
49- "vscode-css-languageservice" : " 1.0.4"
49+ "vscode-languageserver-types" : " 1.0.1" ,
50+ "vscode-css-languageservice" : " 1.0.4" ,
51+ "htmlparser2" : " 3.9.1"
5052 }
5153}
Original file line number Diff line number Diff line change 55import * as ls from 'vscode-languageserver' ;
66import * as css from 'vscode-css-languageservice' ;
77
8+ let html = require ( "htmlparser2" ) ;
9+
810let conn = ls . createConnection ( new ls . IPCMessageReader ( process ) , new ls . IPCMessageWriter ( process ) ) ;
911let docs = new ls . TextDocuments ( ) ;
1012
@@ -19,7 +21,31 @@ conn.onInitialize((params): ls.InitializeResult => {
1921} ) ;
2022
2123docs . onDidChangeContent ( ( change ) => {
24+ let doc = change . document ;
25+
26+ let found = false ;
27+ let parser = new html . Parser ( {
28+ onopentag : function ( name , attribs ) {
29+ if ( name === "style" ) {
30+ found = true ;
31+ }
32+ } ,
33+ ontext : function ( text ) {
34+ if ( found ) {
35+ let start = doc . positionAt ( parser . startIndex ) ;
36+ let end = doc . positionAt ( parser . endIndex + 1 ) ;
37+ let range = ls . Range . create ( start , end ) ;
38+ console . log ( range ) ;
39+ }
40+ } ,
41+ onclosetag : function ( tagname ) {
42+ if ( tagname === "style" ) {
43+ found = false ;
44+ }
45+ }
46+ } , { decodeEntities : true } ) ;
2247
48+ parser . parseComplete ( change . document . getText ( ) ) ;
2349} ) ;
2450
2551conn . listen ( ) ;
You can’t perform that action at this time.
0 commit comments