@@ -14,6 +14,7 @@ export namespace CommentHelpRequest {
1414interface CommentHelpRequestParams {
1515 documentUri : string ;
1616 triggerPosition : Position ;
17+ blockComment : boolean ;
1718}
1819
1920interface CommentHelpRequestResult {
@@ -23,12 +24,20 @@ interface CommentHelpRequestResult {
2324enum SearchState { Searching , Locked , Found } ;
2425
2526export class HelpCompletionFeature implements IFeature {
27+ private readonly triggerCharactersBlockComment : string ;
28+ private readonly triggerCharactersLineComment : string ;
29+ private triggerCharactersFound : string ;
2630 private languageClient : LanguageClient ;
27- private triggerCharacters : string ;
2831 private disposable : Disposable ;
2932 private searchState : SearchState ;
33+ private get isBlockComment ( ) : boolean {
34+ return this . triggerCharactersFound !== undefined &&
35+ this . triggerCharactersFound === this . triggerCharactersBlockComment ;
36+ }
37+
3038 constructor ( ) {
31- this . triggerCharacters = "#<" ;
39+ this . triggerCharactersBlockComment = "#<" ;
40+ this . triggerCharactersLineComment = "##" ;
3241 let subscriptions = [ ] ;
3342 workspace . onDidChangeTextDocument ( this . onEvent , this , subscriptions ) ;
3443 this . searchState = SearchState . Searching ;
@@ -47,15 +56,20 @@ export class HelpCompletionFeature implements IFeature {
4756 let text = changeEvent . contentChanges [ 0 ] . text ;
4857 switch ( this . searchState ) {
4958 case SearchState . Searching :
50- if ( text . length === 1 && text [ 0 ] === this . triggerCharacters [ 0 ] ) {
59+ if ( text . length === 1 && text [ 0 ] === this . triggerCharactersBlockComment [ 0 ] ) {
5160 this . searchState = SearchState . Locked ;
5261 }
5362 break ;
5463
5564 case SearchState . Locked :
56- if ( text . length === 1 && text [ 0 ] === this . triggerCharacters [ 1 ] ) {
65+ if ( text . length === 1 &&
66+ ( text [ 0 ] === ( this . triggerCharactersFound = this . triggerCharactersBlockComment ) [ 1 ] ||
67+ text [ 0 ] === ( this . triggerCharactersFound = this . triggerCharactersLineComment ) [ 1 ] ) ) {
5768 this . searchState = SearchState . Found ;
5869 }
70+ else {
71+ this . searchState = SearchState . Searching ;
72+ }
5973 break ;
6074 }
6175
@@ -72,7 +86,8 @@ export class HelpCompletionFeature implements IFeature {
7286 CommentHelpRequest . type ,
7387 {
7488 documentUri : changeEvent . document . uri . toString ( ) ,
75- triggerPosition : triggerStartPos
89+ triggerPosition : triggerStartPos ,
90+ blockComment : this . isBlockComment
7691 } ) . then ( result => {
7792 let content = result . content ;
7893 if ( content === undefined ) {
0 commit comments