refactor: 增加日志记录

This commit is contained in:
宁宁 2020-02-22 01:08:31 +08:00
parent a16608c3e5
commit 107587e3b1
6 changed files with 83 additions and 13 deletions

View File

@ -369,6 +369,7 @@
}
},
"dependencies": {
"axios": "^0.19.2",
"transliteration": "^2.1.8"
}
}
}

View File

@ -7,7 +7,6 @@ const RULES: { title: string, rule: RegExp, examples: string[] }[] = require('..
import useCommand from './useCommand';
import useCompletion from './useCompletion';
export function activate(context: ExtensionContext) {
useCommand(context, RULES);
useCompletion(context, RULES);

23
src/inserLog.ts Normal file
View File

@ -0,0 +1,23 @@
import axios from 'axios';
const http = axios.create({
baseURL: 'https://leancloud.cn:443/1.1/classes/',
timeout: 1000,
headers: {
"X-LC-Id": "BKaqtaJScQuqKtkAyl5jeloo-gzGzoHsz",
"X-LC-Key": "y41qiVPTwnzLIgbDcEzcwHit",
"Content-Type": "application/json"
}
});
export default function ({ vscodeVersion, extensionVersion, language, rule, title, method }: Record<string, string>) {
http.post('https://leancloud.cn:443/1.1/classes/Log', {
vscodeVersion,
language,
rule,
title,
extensionVersion,
method
});
};

View File

@ -1,22 +1,36 @@
import * as vscode from "vscode";
import {window,version,commands,Range,ExtensionContext,extensions} from "vscode";
import { Rule } from './interface';
export default function (context: vscode.ExtensionContext, RULES: Rule[]) {
import inserLog from './inserLog';
export default function (context: ExtensionContext, RULES: Rule[]) {
RULES.forEach(({ title, rule }, index) => {
let disposable = vscode.commands.registerCommand(`extension.rule${index}`, () => {
const editor = vscode.window.activeTextEditor;
let disposable = commands.registerCommand(`extension.rule${index}`, () => {
const editor = window.activeTextEditor;
if (editor) {
const { selections } = editor;
editor.edit(editBuilder => {
selections.forEach(selection => {
const { start, end } = selection;
const range = new vscode.Range(start, end);
const range = new Range(start, end);
editBuilder.replace(range, String(rule));
});
});
vscode.window.showInformationMessage(`已插入正则: ${title}`);
// 日志
const language = window.activeTextEditor ? window.activeTextEditor.document.languageId as string : '';
const e = extensions.getExtension('russell.any-rule')
inserLog({
vscodeVersion: version,
language,
rule: String(rule),
title,
extensionVersion: e && e.packageJSON.version,
method: 'Command'
});
window.showInformationMessage(`已插入正则: ${title}`);
} else {
vscode.window.showWarningMessage('any-rule: 只有在编辑文本的时候才可以使用!');
window.showWarningMessage('any-rule: 只有在编辑文本的时候才可以使用!');
}
});
context.subscriptions.push(disposable);

View File

@ -1,7 +1,8 @@
import { ExtensionContext, CompletionItem, CompletionItemKind, languages, Disposable, workspace, window, commands, TextDocument, Position, Range, Selection, MarkdownString } from "vscode";
import { ExtensionContext, version, CompletionItemKind, languages, Disposable, Extension, window, commands, TextDocument, Position, Range, Selection, MarkdownString, extensions } from "vscode";
import { Rule } from './interface';
import { COMPLETION_TRIGGER_ID } from './constant';
// import { slugify } from 'transliteration';
import inserLog from './inserLog';
export default function (context: ExtensionContext, RULES: Rule[]) {
// commands.registerCommand('functions.insertRegex', insertRule);
@ -27,8 +28,26 @@ export default function (context: ExtensionContext, RULES: Rule[]) {
// }
}).then(item => {
if (!item) return
insertRule(document, position, item.rule)
window.showInformationMessage(item.rule);
insertRule(document, position, item.rule);
const language = window.activeTextEditor ? window.activeTextEditor.document.languageId as string : '';
// 日志
const e = extensions.getExtension('russell.any-rule')
inserLog({
vscodeVersion: version,
language,
rule: item.rule,
title: item.label,
extensionVersion: e && e.packageJSON.version,
method: 'QuickPick'
});
// https://github.com/any86/any-rule/issues/new?title=%E6%9D%A5%E8%87%AAvscode%E7%9A%84%E5%8F%8D%E9%A6%88(1.4.2%20-%20java)
window.showInformationMessage(`已插入正则: "${item.label}"`, '🦕图解正则', '🚀反馈问题', version, language).then(value => {
// window.showInformationMessage();
});
});
return void 0;

View File

@ -116,6 +116,13 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
axios@^0.19.2:
version "0.19.2"
resolved "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
dependencies:
follow-redirects "1.5.10"
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@ -221,7 +228,7 @@ cross-spawn@^6.0.0:
shebang-command "^1.2.0"
which "^1.2.9"
debug@3.1.0:
debug@3.1.0, debug@=3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
@ -352,6 +359,13 @@ flat@^4.1.0:
dependencies:
is-buffer "~2.0.3"
follow-redirects@1.5.10:
version "1.5.10"
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
dependencies:
debug "=3.1.0"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"