@@ -36,16 +36,16 @@ export class HelpCompletionFeature implements IFeature {
3636 }
3737
3838 constructor ( ) {
39- this . triggerCharactersBlockComment = "#< " ;
39+ this . triggerCharactersBlockComment = "<# " ;
4040 this . triggerCharactersLineComment = "##" ;
4141 let subscriptions = [ ] ;
4242 workspace . onDidChangeTextDocument ( this . onEvent , this , subscriptions ) ;
4343 this . searchState = SearchState . Searching ;
4444 this . disposable = Disposable . from ( ...subscriptions ) ;
4545 }
4646
47- setLanguageClient ( languageclient : LanguageClient ) {
48- this . languageClient = languageclient ;
47+ setLanguageClient ( languageClient : LanguageClient ) {
48+ this . languageClient = languageClient ;
4949 }
5050
5151 dispose ( ) {
@@ -56,15 +56,20 @@ export class HelpCompletionFeature implements IFeature {
5656 let text = changeEvent . contentChanges [ 0 ] . text ;
5757 switch ( this . searchState ) {
5858 case SearchState . Searching :
59- if ( text . length === 1 && text [ 0 ] === this . triggerCharactersBlockComment [ 0 ] ) {
60- this . searchState = SearchState . Locked ;
59+ if ( text . length === 1 ) {
60+ if ( text [ 0 ] === this . triggerCharactersBlockComment [ 0 ] ) {
61+ this . searchState = SearchState . Locked ;
62+ this . triggerCharactersFound = this . triggerCharactersBlockComment ;
63+ }
64+ else if ( text [ 0 ] === this . triggerCharactersLineComment [ 0 ] ) {
65+ this . searchState = SearchState . Locked ;
66+ this . triggerCharactersFound = this . triggerCharactersLineComment ;
67+ }
6168 }
6269 break ;
6370
6471 case SearchState . Locked :
65- if ( text . length === 1 &&
66- ( text [ 0 ] === ( this . triggerCharactersFound = this . triggerCharactersBlockComment ) [ 1 ] ||
67- text [ 0 ] === ( this . triggerCharactersFound = this . triggerCharactersLineComment ) [ 1 ] ) ) {
72+ if ( text . length === 1 && text [ 0 ] === this . triggerCharactersFound [ 1 ] ) {
6873 this . searchState = SearchState . Found ;
6974 }
7075 else {
@@ -89,18 +94,22 @@ export class HelpCompletionFeature implements IFeature {
8994 triggerPosition : triggerStartPos ,
9095 blockComment : this . isBlockComment
9196 } ) . then ( result => {
97+ if ( result === undefined ) {
98+ return ;
99+ }
100+
92101 let content = result . content ;
93102 if ( content === undefined ) {
94103 return ;
95104 }
96105
97- // todo allow "##" as trigger characters
98106 // todo remove the new line after help block
99107 // todo get the eol character programmatically or let the server return one whole string
108+ // todo add indentation level to the help content
100109 let editor = vscode . window . activeTextEditor ;
101110 let replaceRange = new vscode . Range ( triggerStartPos . translate ( 0 , - 1 ) , triggerStartPos . translate ( 0 , 1 ) ) ;
102111 let text = content . join ( "\r\n" ) ;
103- editor . edit ( editbuilder => editbuilder . replace ( replaceRange , text ) ) ;
112+ editor . edit ( editBuilder => editBuilder . replace ( replaceRange , text ) ) ;
104113 } ) ;
105114 }
106115 }
0 commit comments