Skip to content

Commit

Permalink
fix: microsoft#55946 Added comment snippet variable
Browse files Browse the repository at this point in the history
  • Loading branch information
karan verma committed Nov 21, 2018
1 parent 47b3238 commit a5120a1
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/vs/editor/contrib/snippet/snippetSession.ts
Expand Up @@ -17,7 +17,7 @@ import { ModelDecorationOptions } from 'vs/editor/common/model/textModel';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
import { optional } from 'vs/platform/instantiation/common/instantiation';
import { Choice, Placeholder, SnippetParser, Text, TextmateSnippet } from './snippetParser';
import { ClipboardBasedVariableResolver, CompositeSnippetVariableResolver, ModelBasedVariableResolver, SelectionBasedVariableResolver, TimeBasedVariableResolver } from './snippetVariables';
import { ClipboardBasedVariableResolver, CompositeSnippetVariableResolver, ModelBasedVariableResolver, SelectionBasedVariableResolver, TimeBasedVariableResolver, CommentBasedVariableResolver } from './snippetVariables';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import * as colors from 'vs/platform/theme/common/colorRegistry';

Expand Down Expand Up @@ -402,6 +402,7 @@ export class SnippetSession {
modelBasedVariableResolver,
new ClipboardBasedVariableResolver(clipboardService, idx, indexedSelections.length),
new SelectionBasedVariableResolver(model, selection),
new CommentBasedVariableResolver(model),
new TimeBasedVariableResolver
]));

Expand Down
25 changes: 24 additions & 1 deletion src/vs/editor/contrib/snippet/snippetVariables.ts
Expand Up @@ -8,6 +8,7 @@ import { basename, dirname } from 'vs/base/common/paths';
import { ITextModel } from 'vs/editor/common/model';
import { Selection } from 'vs/editor/common/core/selection';
import { VariableResolver, Variable, Text } from 'vs/editor/contrib/snippet/snippetParser';
import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry';
import { getLeadingWhitespace, commonPrefixLength, isFalsyOrWhitespace, pad } from 'vs/base/common/strings';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';

Expand All @@ -34,6 +35,9 @@ export const KnownSnippetVariableNames = Object.freeze({
'TM_FILENAME_BASE': true,
'TM_DIRECTORY': true,
'TM_FILEPATH': true,
'BLOCK_COMMENT_START': true,
'BLOCK_COMMENT_END': true,
'LINE_COMMENT': true,
});

export class CompositeSnippetVariableResolver implements VariableResolver {
Expand Down Expand Up @@ -180,7 +184,26 @@ export class ClipboardBasedVariableResolver implements VariableResolver {
}
}
}

export class CommentBasedVariableResolver implements VariableResolver {
constructor(
private readonly _model: ITextModel
) {
//
}
resolve(variable: Variable): string | undefined {
const { name } = variable;
const language = this._model.getLanguageIdentifier();
const comments = LanguageConfigurationRegistry.getComments(language.id);
if (name === 'LINE_COMMENT') {
return comments.lineCommentToken;
} else if (name === 'BLOCK_COMMENT_START') {
return comments.blockCommentStartToken;
} else if (name === 'BLOCK_COMMENT_END') {
return comments.blockCommentEndToken;
}
return undefined;
}
}
export class TimeBasedVariableResolver implements VariableResolver {

private static readonly dayNames = [nls.localize('Sunday', "Sunday"), nls.localize('Monday', "Monday"), nls.localize('Tuesday', "Tuesday"), nls.localize('Wednesday', "Wednesday"), nls.localize('Thursday', "Thursday"), nls.localize('Friday', "Friday"), nls.localize('Saturday', "Saturday")];
Expand Down

0 comments on commit a5120a1

Please sign in to comment.