From 1ab68ec473f9e7e08c0caaf978f1ec7c301aa81d Mon Sep 17 00:00:00 2001 From: DBAA Date: Fri, 25 Nov 2022 21:11:14 +0800 Subject: [PATCH] Initial --- README.md | 6 +- images/icon.png | Bin 5995 -> 6806 bytes images/icon_large.png | Bin 87091 -> 0 bytes package-lock.json | 34 ++++++ package.json | 44 +++++++- src/commands/commands.ts | 9 ++ src/commands/smartHeader.ts | 28 +++++ src/config/default.config.ts | 27 +++++ src/enums/commandType.ts | 5 + src/enums/errorType.ts | 5 + src/enums/fileType.ts | 12 ++ src/enums/itemType.ts | 7 ++ src/events/events.ts | 13 +++ src/events/workspace/index.ts | 84 ++++++++++++++ src/extension.ts | 14 ++- src/models/command.ts | 5 + src/models/config.ts | 7 ++ src/utils/index.ts | 203 ++++++++++++++++++++++++++++++++++ 18 files changed, 493 insertions(+), 10 deletions(-) delete mode 100644 images/icon_large.png create mode 100644 src/commands/commands.ts create mode 100644 src/commands/smartHeader.ts create mode 100644 src/config/default.config.ts create mode 100644 src/enums/commandType.ts create mode 100644 src/enums/errorType.ts create mode 100644 src/enums/fileType.ts create mode 100644 src/enums/itemType.ts create mode 100644 src/events/events.ts create mode 100644 src/events/workspace/index.ts create mode 100644 src/models/command.ts create mode 100644 src/models/config.ts create mode 100644 src/utils/index.ts diff --git a/README.md b/README.md index 43593c4..f28c06f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# smart-comments README +# Smart Comments -This is the README for your extension "smart-comments". After writing up a brief description, we recommend including the following sections. +This is an extension that helps with annotations, making the code easier to read. + +`Ctrl`-`Shift`-`I` ## Features diff --git a/images/icon.png b/images/icon.png index dca194ef423485210e747fbc2e1ae9396e051c74..a2f158ca9390fd9dbfb1bd5d36dcdf78ffa43f46 100644 GIT binary patch literal 6806 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 Eg3hD;SO5S3 delta 5992 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

fPXwjd}Ej;(BazV|M?O5eCbe$3HodeL7rIDc^$ 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ⅈ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 OA9^aMB3mMD=<|Q?N7I%7 diff --git a/package-lock.json b/package-lock.json index b310c13..1127a9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1279,6 +1279,11 @@ } } }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1359,6 +1364,15 @@ "callsites": "^3.0.0" } }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -1395,6 +1409,11 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -1683,6 +1702,21 @@ "punycode": "^2.1.0" } }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 44b8251..1c8eaa3 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,52 @@ { "name": "smart-comments", "displayName": "Smart Comments", - "icon": "icon.png", - "description": "", + "description": "This extension helps with annotations, making the code easier to read", "version": "0.0.1", + "icon": "images/icon.png", + "publisher": "Ziyi Cao", + "author": "Ziyi Cao", + "private": true, "engines": { "vscode": "^1.73.0" }, + "repository": { + "type": "git", + "url": "https://github.com/hellocaoziyi/smart-comments.git" + }, "categories": [ - "Other" + "Formatters" ], "activationEvents": [ - "onCommand:smart-comments.helloWorld" + "onCommand:smart-comments.helloWorld", + "onStartupFinished", + "onCommand:extension.smartHeader" ], "main": "./out/extension.js", "contributes": { + "configuration": { + "type": "object", + "title": "Smart Comments Configuration", + "properties": { + "smartHeader": { + "type": "object", + "default": {}, + "description": "" + } + } + }, "commands": [ { - "command": "smart-comments.helloWorld", - "title": "Hello World" + "command": "extension.smartHeader", + "title": "Smart Header" + } + ], + "keybindings": [ + { + "command": "extension.smartHeader", + "key": "ctrl+alt+i", + "mac": "ctrl+cmd+i", + "when": "editorTextFocus" } ] }, @@ -30,6 +58,10 @@ "lint": "eslint src --ext ts", "test": "node ./out/test/runTest.js" }, + "dependencies": { + "moment": "^2.29.4", + "path": "^0.12.7" + }, "devDependencies": { "@types/vscode": "^1.73.0", "@types/glob": "^8.0.0", diff --git a/src/commands/commands.ts b/src/commands/commands.ts new file mode 100644 index 0000000..7d1abc5 --- /dev/null +++ b/src/commands/commands.ts @@ -0,0 +1,9 @@ +import CommandType from '../enums/commandType'; +import ICommand from '../models/command'; +import smartHeader from './smartHeader'; + +const commandList = new Map([ + [CommandType.smartHeader, {handler: smartHeader}], +]); + +export default commandList; \ No newline at end of file diff --git a/src/commands/smartHeader.ts b/src/commands/smartHeader.ts new file mode 100644 index 0000000..f555695 --- /dev/null +++ b/src/commands/smartHeader.ts @@ -0,0 +1,28 @@ +import defaultConfig from '../config/default.config'; +import ErrorType from '../enums/errorType'; +import { generateHeaderTemplate } from '../utils/index'; +import * as vscode from 'vscode'; + +const smartHeader = () => { + // Get configuration from user settings + const smartHeaderConfig = vscode.workspace.getConfiguration('smartHeader'); + const format = (smartHeaderConfig && smartHeaderConfig.format) || defaultConfig.format; + const header = (smartHeaderConfig && smartHeaderConfig.header) || defaultConfig.header; + + // Selected activated file the very first time the command is executed + const activeTextEditor = vscode.window.activeTextEditor; + + activeTextEditor?.edit((editBuilder: vscode.TextEditorEdit) => { + try { + const filePath = activeTextEditor.document.fileName; + const headerTemplate = generateHeaderTemplate({format, header}, filePath); + + // Insert Header + editBuilder.insert(new vscode.Position(0, 0), headerTemplate); + } catch (error) { + throw (new Error(ErrorType.InsertFailure)); + } + }); +}; + +export default smartHeader; diff --git a/src/config/default.config.ts b/src/config/default.config.ts new file mode 100644 index 0000000..2cd630b --- /dev/null +++ b/src/config/default.config.ts @@ -0,0 +1,27 @@ +const defaultConfig = { + format: { + startWith: '/**', + middleWith: '*', + endWith: '*/', + headerPrefix: '@', + }, + header: { + 'Author': 'Your name', + 'Create Time': { + type: 'createTime', + format: 'YYYY-MM-DD HH:mm:ss', + }, + 'Modified by': { + type: 'modifier', + value: 'Your name', + }, + 'Modified time': { + type: 'modifyTime', + format: 'YYYY-MM-DD HH:mm:ss', + }, + 'Company': 'Radar Resource Group, UESTC', + 'Description': '', + }, + }; + + export default defaultConfig; \ No newline at end of file diff --git a/src/enums/commandType.ts b/src/enums/commandType.ts new file mode 100644 index 0000000..f997f2a --- /dev/null +++ b/src/enums/commandType.ts @@ -0,0 +1,5 @@ +enum CommandType { + smartHeader = 'extension.smartHeader', + } + + export default CommandType; \ No newline at end of file diff --git a/src/enums/errorType.ts b/src/enums/errorType.ts new file mode 100644 index 0000000..931ed08 --- /dev/null +++ b/src/enums/errorType.ts @@ -0,0 +1,5 @@ +enum ErrorType { + InsertFailure = 'Insert header failure.', + } + + export default ErrorType; \ No newline at end of file diff --git a/src/enums/fileType.ts b/src/enums/fileType.ts new file mode 100644 index 0000000..f5d4102 --- /dev/null +++ b/src/enums/fileType.ts @@ -0,0 +1,12 @@ +enum FileType { + Ejs = '.ejs', + Html = '.html', + Xml = '.xml', + Vue = '.vue', + Python = '.py', + Javascript = '.js', + Typescript = '.ts', + Matlab = '.m', + } + + export default FileType; \ No newline at end of file diff --git a/src/enums/itemType.ts b/src/enums/itemType.ts new file mode 100644 index 0000000..0b691df --- /dev/null +++ b/src/enums/itemType.ts @@ -0,0 +1,7 @@ +enum ItemType { + CreateTime = 'createTime', + ModifyTime = 'modifyTime', + Modifier = 'modifier', + } + + export default ItemType; \ No newline at end of file diff --git a/src/events/events.ts b/src/events/events.ts new file mode 100644 index 0000000..029a078 --- /dev/null +++ b/src/events/events.ts @@ -0,0 +1,13 @@ +import { workspace } from 'vscode'; + +import { onDidSaveTextDocument } from './workspace/index'; + +/** + * Handle events + */ +const handleEvents = () => { + // Handle workspace events + workspace.onDidSaveTextDocument(onDidSaveTextDocument); +}; + +export default handleEvents; diff --git a/src/events/workspace/index.ts b/src/events/workspace/index.ts new file mode 100644 index 0000000..a706f80 --- /dev/null +++ b/src/events/workspace/index.ts @@ -0,0 +1,84 @@ +import { Position, Range, TextDocument, TextEditorEdit, window, workspace } from 'vscode'; + +import defaultConfig from '../../config/default.config'; +import { checkLineStartsWith, getConfigOptionCount, getModify } from '../../utils/index'; + +// Last save time +let lastSaveTime = 0; + +// Last save file name +let lastFileName = ''; + +/** + * File did save event handler + */ +export const onDidSaveTextDocument = (document: TextDocument) => { + if (document.fileName === lastFileName) { + const currentTime = new Date().getTime(); + const timeInterval = currentTime - lastSaveTime; + if (timeInterval <= 5 * 1000) { + return; + } + } + + lastSaveTime = new Date().getTime(); + lastFileName = document.fileName; + + // Get configuration from user settings + const smartHeaderConfig = workspace.getConfiguration('smartHeader'); + const format = (smartHeaderConfig && smartHeaderConfig.format) || defaultConfig.format; + const header = (smartHeaderConfig && smartHeaderConfig.header) || defaultConfig.header; + + // Selected activated file the very first time the command is executed + const activeTextEditor = window.activeTextEditor; + + // Get modify entity + const modifyEntity = getModify({ format, header }, document.fileName); + const modifyTime = modifyEntity.modifyTime; + const modifier = modifyEntity.modifier; + + const length = getConfigOptionCount(header); + + let mofidyTimeRange = new Range(new Position(0, 0), new Position(0, 0)); + let modifierRange = new Range(new Position(0, 0), new Position(0, 0)); + const modifyTimeStartsWith = modifyEntity.modifyTime.matchPrefix//` ${format.middleWith} ${format.headerPrefix} ${modifyTime.key}:`; + const modifierStartsWith = modifyEntity.modifier.matchPrefix //` ${format.middleWith} ${format.headerPrefix} ${modifier.key}:`; + for (let index = 0; index < length; index++) { + // Get line text + const linetAt = document.lineAt(index); + const line = linetAt.text; + + // tslint:disable-next-line:max-line-length + const isMofidyTimeLine = checkLineStartsWith(line, modifyTimeStartsWith); + if (isMofidyTimeLine) { + mofidyTimeRange = linetAt.range; + continue; + } + + const isModifierLine = checkLineStartsWith(line, modifierStartsWith); + if (isModifierLine) { + modifierRange = linetAt.range; + } + } + + const isUpdateModifyTime = !mofidyTimeRange.isEmpty && modifyTime.key && modifyTime.value; + const isUpdateModifier = !modifierRange.isEmpty && modifier.key && modifier.value; + + if (!isUpdateModifyTime && !isUpdateModifier) { + return; + } + + // Update header + activeTextEditor?.edit((editBuilder: TextEditorEdit) => { + if (isUpdateModifyTime) { + editBuilder.replace(mofidyTimeRange, modifyTime.value); + } + + if (isUpdateModifier) { + editBuilder.replace(modifierRange, modifier.value); + } + }); + setTimeout(() => { + document.save(); + }, 200); +}; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 83ab1e3..0c3a6de 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -2,13 +2,16 @@ // Import the module and reference it with the alias vscode in your code below import * as vscode from 'vscode'; +import commandList from './commands/commands'; +import handleEvents from './events/events'; + // This method is called when your extension is activated // Your extension is activated the very first time the command is executed export function activate(context: vscode.ExtensionContext) { // Use the console to output diagnostic information (console.log) and errors (console.error) // This line of code will only be executed once when your extension is activated - console.log('Congratulations, your extension "smart-comments" is now active!'); + console.log('"Smart Comments" is now active!'); // The command has been defined in the package.json file // Now provide the implementation of the command with registerCommand @@ -19,8 +22,15 @@ export function activate(context: vscode.ExtensionContext) { vscode.window.showInformationMessage('Hello World from Smart Comments!'); }); + for (const [key, value] of commandList) { + const command = vscode.commands.registerCommand(key, value.handler); + context.subscriptions.push(command); + } + + handleEvents(); + context.subscriptions.push(disposable); } // This method is called when your extension is deactivated -export function deactivate() {} +export function deactivate() {} \ No newline at end of file diff --git a/src/models/command.ts b/src/models/command.ts new file mode 100644 index 0000000..0cb08a9 --- /dev/null +++ b/src/models/command.ts @@ -0,0 +1,5 @@ +interface ICommand { + handler: () => void; + } + + export default ICommand; \ No newline at end of file diff --git a/src/models/config.ts b/src/models/config.ts new file mode 100644 index 0000000..be8b94e --- /dev/null +++ b/src/models/config.ts @@ -0,0 +1,7 @@ +interface IConfig { + format: any; + header: any; + } + + export default IConfig; + \ No newline at end of file diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..cdf3b85 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,203 @@ +import * as fs from 'fs'; +import * as moment from 'moment'; +import * as path from 'path'; + +import FileType from '../enums/fileType'; +import ItemType from '../enums/itemType'; +import IConfig from '../models/config'; + +/** + * Get Format config + * @param {string} extname file extname + * @param {object} format format config + */ +const getFormat = (extname: string, format: any) => { + let result = format; + switch (extname) { + case FileType.Ejs: + case FileType.Html: + case FileType.Xml: + case FileType.Vue: + result = { + startWith: '', + headerPrefix: '@', + }; + break; + case FileType.Python: + result = { + startWith: `'''`, + middleWith: '#', + endWith: `'''`, + headerPrefix: '@', + }; + break; + case FileType.Javascript: + case FileType.Typescript: + result = { + startWith: `/**`, + middleWith: '*', + endWith: `*/`, + headerPrefix: '@', + }; + break; + case FileType.Matlab: + result = { + startWith: `%`, + middleWith: '%', + endWith: `%`, + headerPrefix: '@', + }; + break; + default: + break; + } + + return result; +}; + +/** + * Get config option count + * @param {object} headerConfig header config + */ +export const getConfigOptionCount = (headerConfig: any) => { + // Cantians top and footer + let result = 2; + + for (const key in headerConfig) { + if (headerConfig.hasOwnProperty(key)) { + result++; + } + } + + return result; +}; + +/** + * Generate header template + * @param {object} config config + * @param {string} filePath file path + */ +export const generateHeaderTemplate = (config: IConfig, filePath: string) => { + let result = ''; + + const fileCreateTime = fs.statSync(filePath).birthtime; + const extname = path.extname(filePath); + + const format = getFormat(extname, config.format); + + // Add top comment + result += `${format.startWith}\n`; + + const header = config.header; + for (const key in header) { + if (header.hasOwnProperty(key)) { + const element = header[key]; + if (typeof element === 'string') { + let value = ` ${element}`; + if (!element) { + value = ``; + } + result += `${format.middleWith} ${format.headerPrefix} ${key}:${value}\n`; + continue; + } + + if (typeof element === 'object') { + let timeFormat; + switch (element.type) { + case ItemType.CreateTime: + timeFormat = element.format || 'YYYY-MM-DD HH:mm:ss'; + const createTime = moment(fileCreateTime).format(timeFormat); + result += `${format.middleWith} ${format.headerPrefix} ${key}: ${createTime}\n`; + break; + case ItemType.ModifyTime: + timeFormat = element.format || 'YYYY-MM-DD HH:mm:ss'; + const modifyTime = moment().format(timeFormat); + result += `${format.middleWith} ${format.headerPrefix} ${key}: ${modifyTime}\n`; + break; + case ItemType.Modifier: + result += `${format.middleWith} ${format.headerPrefix} ${key}: ${element.value}\n`; + break; + default: + break; + } + } + } + } + + // Add footer comment + result += `${format.endWith}\n\n`; + + return result; +}; + +/** + * Get mofidy entity + * @param {object} config config + * @param {string} filePath file path + */ +export const getModify = (config: IConfig, filePath: string) => { + const result = { + modifyTime: { + key: '', + value: '', + matchPrefix: '', + }, + modifier: { + key: '', + value: '', + matchPrefix: '' + }, + }; + + const extname = path.extname(filePath); + const format = getFormat(extname, config.format); + + const header = config.header; + for (const key in header) { + if (header.hasOwnProperty(key)) { + const element = header[key]; + if (typeof element === 'string') { + continue; + } + + if (typeof element === 'object') { + switch (element.type) { + case ItemType.ModifyTime: + const timeFormat = element.format || 'YYYY-MM-DD HH:mm:ss'; + const modifyTime = moment().format(timeFormat); + result.modifyTime = { + key, + value: `${format.middleWith} ${format.headerPrefix} ${key}: ${modifyTime}`, + matchPrefix: `${format.middleWith} ${format.headerPrefix} ${key}:`, + }; + break; + case ItemType.Modifier: + result.modifier = { + key, + value: `${format.middleWith} ${format.headerPrefix} ${key}: ${element.value}`, + matchPrefix: `${format.middleWith} ${format.headerPrefix} ${key}:`, + }; + break; + default: + break; + } + } + } + } + + return result; +}; + +/** + * Check line starts with + * @param {object} config config + */ +export const checkLineStartsWith = (target: string, match: string) => { + if (target.startsWith(match)) { + return true; + } + + return false; +}; \ No newline at end of file