未验证 提交 6b0613aa 编写于 作者: J Johannes Rieken 提交者: GitHub

Merge pull request #82529 from Krystofee/added_random_snippet_variable

Added RANDOM, RANDOM_HEX snippet variables
......@@ -18,7 +18,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { optional } from 'vs/platform/instantiation/common/instantiation';
import { Choice, Placeholder, SnippetParser, Text, TextmateSnippet, Marker } from './snippetParser';
import { ClipboardBasedVariableResolver, CompositeSnippetVariableResolver, ModelBasedVariableResolver, SelectionBasedVariableResolver, TimeBasedVariableResolver, CommentBasedVariableResolver, WorkspaceBasedVariableResolver } from './snippetVariables';
import { ClipboardBasedVariableResolver, CompositeSnippetVariableResolver, ModelBasedVariableResolver, SelectionBasedVariableResolver, TimeBasedVariableResolver, CommentBasedVariableResolver, WorkspaceBasedVariableResolver, RandomBasedVariableResolver } from './snippetVariables';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import * as colors from 'vs/platform/theme/common/colorRegistry';
import { withNullAsUndefined } from 'vs/base/common/types';
......@@ -450,6 +450,7 @@ export class SnippetSession {
new CommentBasedVariableResolver(model),
new TimeBasedVariableResolver,
new WorkspaceBasedVariableResolver(workspaceService),
new RandomBasedVariableResolver,
]));
const offset = model.getOffsetAt(start) + delta;
......
......@@ -46,6 +46,8 @@ export const KnownSnippetVariableNames: { [key: string]: true } = Object.freeze(
'LINE_COMMENT': true,
'WORKSPACE_NAME': true,
'WORKSPACE_FOLDER': true,
'RANDOM': true,
'RANDOM_HEX': true,
});
export class CompositeSnippetVariableResolver implements VariableResolver {
......@@ -316,3 +318,18 @@ export class WorkspaceBasedVariableResolver implements VariableResolver {
return (folderpath ? normalizeDriveLetter(folderpath) : '/');
}
}
export class RandomBasedVariableResolver implements VariableResolver {
resolve(variable: Variable): string | undefined {
const { name } = variable;
if (name === 'RANDOM') {
return Math.random().toString().slice(-6);
}
else if (name === 'RANDOM_HEX') {
return Math.random().toString(16).slice(-6);
}
return undefined;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册