未验证 提交 04d155f9 编写于 作者: J Johannes Rieken 提交者: GitHub

Merge pull request #46049 from usernamehw/additional_time_variables

Add more time-based variables for snippets
......@@ -5,6 +5,7 @@
'use strict';
import * as nls from 'vs/nls';
import { basename, dirname } from 'vs/base/common/paths';
import { ITextModel } from 'vs/editor/common/model';
import { Selection } from 'vs/editor/common/core/selection';
......@@ -20,6 +21,10 @@ export const KnownSnippetVariableNames = Object.freeze({
'CURRENT_HOUR': true,
'CURRENT_MINUTE': true,
'CURRENT_SECOND': true,
'CURRENT_DAY_NAME': true,
'CURRENT_DAY_NAME_SHORT': true,
'CURRENT_MONTH_NAME': true,
'CURRENT_MONTH_NAME_SHORT': true,
'SELECTION': true,
'CLIPBOARD': true,
'TM_SELECTED_TEXT': true,
......@@ -180,6 +185,11 @@ export class ClipboardBasedVariableResolver implements VariableResolver {
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")];
private static readonly dayNamesShort = [nls.localize('SundayShort', "Sun"), nls.localize('MondayShort', "Mon"), nls.localize('TuesdayShort', "Tue"), nls.localize('WednesdayShort', "Wed"), nls.localize('ThursdayShort', "Thu"), nls.localize('FridayShort', "Fri"), nls.localize('SaturdayShort', "Sat")];
private static readonly monthNames = [nls.localize('January', "January"), nls.localize('February', "February"), nls.localize('March', "March"), nls.localize('April', "April"), nls.localize('May', "May"), nls.localize('June', "June"), nls.localize('July', "July"), nls.localize('August', "August"), nls.localize('September', "September"), nls.localize('October', "October"), nls.localize('November', "November"), nls.localize('December', "December")];
private static readonly monthNamesShort = [nls.localize('JanuaryShort', "Jan"), nls.localize('FebruaryShort', "Feb"), nls.localize('MarchShort', "Mar"), nls.localize('AprilShort', "Apr"), nls.localize('MayShort', "May"), nls.localize('JuneShort', "Jun"), nls.localize('JulyShort', "Jul"), nls.localize('AugustShort', "Aug"), nls.localize('SeptemberShort', "Sep"), nls.localize('OctoberShort', "Oct"), nls.localize('NovemberShort', "Nov"), nls.localize('DecemberShort', "Dec")];
resolve(variable: Variable): string {
const { name } = variable;
......@@ -197,6 +207,14 @@ export class TimeBasedVariableResolver implements VariableResolver {
return pad(new Date().getMinutes().valueOf(), 2);
} else if (name === 'CURRENT_SECOND') {
return pad(new Date().getSeconds().valueOf(), 2);
} else if (name === 'CURRENT_DAY_NAME') {
return TimeBasedVariableResolver.dayNames[new Date().getDay()];
} else if (name === 'CURRENT_DAY_NAME_SHORT') {
return TimeBasedVariableResolver.dayNamesShort[new Date().getDay()];
} else if (name === 'CURRENT_MONTH_NAME') {
return TimeBasedVariableResolver.monthNames[new Date().getMonth()];
} else if (name === 'CURRENT_MONTH_NAME_SHORT') {
return TimeBasedVariableResolver.monthNamesShort[new Date().getMonth()];
}
return undefined;
......
......@@ -276,7 +276,7 @@ suite('Snippet Variables Resolver', function () {
assert.equal(variable.resolve(resolver), true, `${varName} failed to resolve`);
}
test('Add time variables for snippets #41631', function () {
test('Add time variables for snippets #41631, #43140', function () {
const resolver = new TimeBasedVariableResolver;
......@@ -287,5 +287,9 @@ suite('Snippet Variables Resolver', function () {
assertVariableResolve3(resolver, 'CURRENT_HOUR');
assertVariableResolve3(resolver, 'CURRENT_MINUTE');
assertVariableResolve3(resolver, 'CURRENT_SECOND');
assertVariableResolve3(resolver, 'CURRENT_DAY_NAME');
assertVariableResolve3(resolver, 'CURRENT_DAY_NAME_SHORT');
assertVariableResolve3(resolver, 'CURRENT_MONTH_NAME');
assertVariableResolve3(resolver, 'CURRENT_MONTH_NAME_SHORT');
});
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册