Skip to content

Commit

Permalink
✨ feat(Titles): add setting to define titles displayed for each variable
Browse files Browse the repository at this point in the history
  • Loading branch information
RIOU Kevin committed Jul 19, 2022
1 parent 9b15533 commit 0ee3e22
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 7 deletions.
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@
"vscodeGitCommit.defaultVariablesValues": {
"scope": "😉"
},
"vscodeGitCommit.variablesDisplayTitles": {
"prefix": "Here is a title in config for testing purpose",
"scope": "The scope represent a global one word link to changes"
},
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#e36b61",
"activityBar.activeBorder": "#136c1a",
Expand Down
18 changes: 15 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "vscode-git-commit",
"displayName": "VSCode Git Commit Message",
"description": "Harmonize your git commit message with your colleagues",
"version": "3.0.2",
"version": "3.0.3",
"engines": {
"vscode": "^1.42.0"
},
Expand Down Expand Up @@ -117,6 +117,18 @@
}
]
}
},
"vscodeGitCommit.variablesDisplayTitles": {
"type": "object",
"markdownDescription": "Define titles displayed optionnaly on variables inputs",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"minLength": 1
}
]
}
}
}
},
Expand Down Expand Up @@ -158,8 +170,8 @@
"extension:build": "yarn md:concatenate && tsc -p ./",
"extension:lint": "eslint src --ext ts --fix",
"extension:pack": "vsce package",
"extension:rm": "rm -f ./vscode-git-commit-3.0.0.vsix",
"extension:install": "code --install-extension vscode-git-commit-3.0.2.vsix",
"extension:rm": "rm -f ./vscode-git-commit-3.0.2.vsix",
"extension:install": "code --install-extension vscode-git-commit-3.0.3.vsix",
"extension:pretest": "npm run extension:compile && npm run lint",
"extension:local": "yarn extension:rm && yarn extension:build && yarn extension:pack && yarn extension:install"
},
Expand Down
15 changes: 13 additions & 2 deletions src/scripts/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setGitMessage } from '../utils/git';
import {
getDefaultVariablesValues,
getTemplate,
getVariableDisplayTitles,
getVariables,
} from '../utils/settings';
import {
Expand All @@ -21,8 +22,13 @@ export const execute = async (repo: Repository) => {

const variablesReplacement: TVariable[] = [];

const variablesDisplayTitles = getVariableDisplayTitles();

for (let i = 0; i < variables.length; i++) {
const v = variables[i];

const title = variablesDisplayTitles[v];

const variablesSettings = getVariables();
const variableValue = variablesSettings[v];
let result = {
Expand All @@ -31,17 +37,22 @@ export const execute = async (repo: Repository) => {
};
if (!variableValue) {
const defaultValuesSettings = getDefaultVariablesValues();
const defaultValue = defaultValuesSettings[v];
const defaultValue: string | undefined = defaultValuesSettings[v];

result.value = await useQuickText({
value: defaultValue,
title,
prompt: !!defaultValue
? `The default value is: "${defaultValue}"`
: undefined,
value: defaultValue ?? '',
ignoreFocusOut: true,
placeHolder: `Please type the value for <${v}>`,
});
} else {
const choices: IQuickPickSettings[] = parseVariable(repo, v);
result.value = await useQuickPick(
{
title,
ignoreFocusOut: true,
placeHolder: `Please select a value for <${v}>`,
},
Expand Down
6 changes: 6 additions & 0 deletions src/typings/settings.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ type ISettingDefaultVariablesValue = string;
type ISettingDefaultVariablesValues = {
[key: string]: ISettingDefaultVariablesValue;
};

type ISettingVariablesDisplayTitle = string | undefined;

type ISettingVariablesDisplayTitles = {
[key: string]: ISettingVariablesDisplayTitle;
};
4 changes: 2 additions & 2 deletions src/utils/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ export const useQuickText = async (
params: InputBoxOptions
): Promise<string> => {
const message = await window.showInputBox(params);
if (!message) {
if (message === undefined) {
konsole.error('Message is cancel');
throw new Error('Empty');
throw new Error('Canceled');
}
return message;
};
9 changes: 9 additions & 0 deletions src/utils/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import { EXTENSION_NAME } from '../config/const';
import {
ISettingDefaultVariablesValues,
ISettingVariables,
ISettingVariablesDisplayTitle,
ISettingVariablesDisplayTitles,
} from '../typings/settings';

export const getMode = (): string | undefined => {
Expand Down Expand Up @@ -32,3 +34,10 @@ export const getDefaultVariablesValues = (): ISettingDefaultVariablesValues => {
.get('defaultVariablesValues');
return variables as ISettingDefaultVariablesValues;
};

export const getVariableDisplayTitles = (): ISettingVariablesDisplayTitles => {
let variables: ISettingVariablesDisplayTitles | undefined = workspace
.getConfiguration(EXTENSION_NAME)
.get('variablesDisplayTitles');
return variables as ISettingVariablesDisplayTitles;
};

0 comments on commit 0ee3e22

Please sign in to comment.