Skip to content

Commit 638d746

Browse files
Kapil Borledaviwil
authored andcommitted
Add option for comment style in comment help
1 parent 9f15c59 commit 638d746

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

src/features/HelpCompletion.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export namespace CommentHelpRequest {
1414
interface CommentHelpRequestParams {
1515
documentUri: string;
1616
triggerPosition: Position;
17+
blockComment: boolean;
1718
}
1819

1920
interface CommentHelpRequestResult {
@@ -23,12 +24,20 @@ interface CommentHelpRequestResult {
2324
enum SearchState { Searching, Locked, Found };
2425

2526
export 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

Comments
 (0)