@@ -36,16 +36,16 @@ export class HelpCompletionFeature implements IFeature {
36
36
}
37
37
38
38
constructor ( ) {
39
- this . triggerCharactersBlockComment = "#< " ;
39
+ this . triggerCharactersBlockComment = "<# " ;
40
40
this . triggerCharactersLineComment = "##" ;
41
41
let subscriptions = [ ] ;
42
42
workspace . onDidChangeTextDocument ( this . onEvent , this , subscriptions ) ;
43
43
this . searchState = SearchState . Searching ;
44
44
this . disposable = Disposable . from ( ...subscriptions ) ;
45
45
}
46
46
47
- setLanguageClient ( languageclient : LanguageClient ) {
48
- this . languageClient = languageclient ;
47
+ setLanguageClient ( languageClient : LanguageClient ) {
48
+ this . languageClient = languageClient ;
49
49
}
50
50
51
51
dispose ( ) {
@@ -56,15 +56,20 @@ export class HelpCompletionFeature implements IFeature {
56
56
let text = changeEvent . contentChanges [ 0 ] . text ;
57
57
switch ( this . searchState ) {
58
58
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
+ }
61
68
}
62
69
break ;
63
70
64
71
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 ] ) {
68
73
this . searchState = SearchState . Found ;
69
74
}
70
75
else {
@@ -89,18 +94,22 @@ export class HelpCompletionFeature implements IFeature {
89
94
triggerPosition : triggerStartPos ,
90
95
blockComment : this . isBlockComment
91
96
} ) . then ( result => {
97
+ if ( result === undefined ) {
98
+ return ;
99
+ }
100
+
92
101
let content = result . content ;
93
102
if ( content === undefined ) {
94
103
return ;
95
104
}
96
105
97
- // todo allow "##" as trigger characters
98
106
// todo remove the new line after help block
99
107
// todo get the eol character programmatically or let the server return one whole string
108
+ // todo add indentation level to the help content
100
109
let editor = vscode . window . activeTextEditor ;
101
110
let replaceRange = new vscode . Range ( triggerStartPos . translate ( 0 , - 1 ) , triggerStartPos . translate ( 0 , 1 ) ) ;
102
111
let text = content . join ( "\r\n" ) ;
103
- editor . edit ( editbuilder => editbuilder . replace ( replaceRange , text ) ) ;
112
+ editor . edit ( editBuilder => editBuilder . replace ( replaceRange , text ) ) ;
104
113
} ) ;
105
114
}
106
115
}
0 commit comments