From aeab16da229394e77b5f570aa4f390cdfd86d65e Mon Sep 17 00:00:00 2001 From: "Anantachai Saothong (Manta)" Date: Mon, 27 Mar 2017 23:49:44 +0700 Subject: [PATCH] Amended gitignore --- .gitignore | 4 +- dist/FileInfo.js | 25 ------ dist/FileInfo.js.map | 1 - dist/FileItem.js | 37 --------- dist/FileItem.js.map | 1 - dist/FilePattern.js | 55 ------------ dist/FilePattern.js.map | 1 - dist/NodeItem.js | 22 ----- dist/NodeItem.js.map | 1 - dist/NodePattern.js | 20 ----- dist/NodePattern.js.map | 1 - dist/Shared.js | 80 ------------------ dist/Shared.js.map | 1 - dist/extension.js | 180 ---------------------------------------- dist/extension.js.map | 1 - 15 files changed, 2 insertions(+), 428 deletions(-) delete mode 100644 dist/FileInfo.js delete mode 100644 dist/FileInfo.js.map delete mode 100644 dist/FileItem.js delete mode 100644 dist/FileItem.js.map delete mode 100644 dist/FilePattern.js delete mode 100644 dist/FilePattern.js.map delete mode 100644 dist/NodeItem.js delete mode 100644 dist/NodeItem.js.map delete mode 100644 dist/NodePattern.js delete mode 100644 dist/NodePattern.js.map delete mode 100644 dist/Shared.js delete mode 100644 dist/Shared.js.map delete mode 100644 dist/extension.js delete mode 100644 dist/extension.js.map diff --git a/.gitignore b/.gitignore index 8e5962e..76add87 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -out -node_modules \ No newline at end of file +node_modules +dist \ No newline at end of file diff --git a/dist/FileInfo.js b/dist/FileInfo.js deleted file mode 100644 index f557992..0000000 --- a/dist/FileInfo.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const path = require("path"); -const _ = require("lodash"); -const Shared = require("./Shared"); -class FileInfo { - constructor(localPath) { - this.localPath = localPath; - this.unixPath = this.localPath.replace(Shared.DRIVE_LETTER_FOR_WINDOWS, '/$1/').replace(Shared.PATH_SEPARATOR_FOR_WINDOWS, '/'); - this.fileExtensionWithoutLeadingDot = path.extname(this.localPath).replace(/^\./, ''); - this.fileNameWithExtension = path.basename(this.localPath); - this.fileNameWithoutExtension = this.fileNameWithExtension.replace(new RegExp('\\.' + this.fileExtensionWithoutLeadingDot + '$', 'i'), ''); - this.directoryPath = path.dirname(this.localPath).replace(Shared.PATH_SEPARATOR_FOR_WINDOWS, '/'); - this.directoryName = _.last(path.dirname(this.localPath).split(path.sep)); - } - getRelativePath(rootPath) { - let relativePath = path.relative(rootPath, this.localPath).replace(Shared.PATH_SEPARATOR_FOR_WINDOWS, '/'); - if (relativePath.startsWith('../') === false) { - relativePath = './' + relativePath; - } - return relativePath; - } -} -exports.default = FileInfo; -//# sourceMappingURL=FileInfo.js.map \ No newline at end of file diff --git a/dist/FileInfo.js.map b/dist/FileInfo.js.map deleted file mode 100644 index a1e9248..0000000 --- a/dist/FileInfo.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"FileInfo.js","sourceRoot":"","sources":["../edge/FileInfo.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAC5B,4BAA2B;AAE3B,mCAAkC;AAElC;IASC,YAAY,SAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QAC/H,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACrF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1D,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,8BAA8B,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QACjG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,eAAe,CAAC,QAAgB;QAC/B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QAC1G,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YAC9C,YAAY,GAAG,IAAI,GAAG,YAAY,CAAA;QACnC,CAAC;QACD,MAAM,CAAC,YAAY,CAAA;IACpB,CAAC;CACD;AA1BD,2BA0BC"} \ No newline at end of file diff --git a/dist/FileItem.js b/dist/FileItem.js deleted file mode 100644 index 945bb22..0000000 --- a/dist/FileItem.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const vscode = require("vscode"); -const path = require("path"); -const _ = require("lodash"); -const FileInfo_1 = require("./FileInfo"); -class FileItem { - constructor(fileLink) { - this.fileInfo = new FileInfo_1.default(fileLink.fsPath); - this.label = this.fileInfo.fileNameWithoutExtension === 'index' && this.fileInfo.directoryName || this.fileInfo.fileNameWithExtension; - this.description = _.trim(path.dirname(fileLink.fsPath.substring(vscode.workspace.rootPath.length)), path.sep); - this.sortableName = this.fileInfo.fileNameWithoutExtension === 'index' ? '!' : this.fileInfo.fileNameWithExtension.toLowerCase(); - } - updateSortablePath(currentDirectoryPath) { - if (vscode.workspace.textDocuments.find(document => document.fileName === this.fileInfo.localPath) !== undefined) { - this.sortablePath = 'a'; - } - else if (this.fileInfo.directoryPath === currentDirectoryPath) { - this.sortablePath = 'b'; - } - else { - this.sortablePath = this.fileInfo.getRelativePath(currentDirectoryPath).split('/').map((chunk, index, array) => { - if (chunk === '.') - return 'c'; - else if (chunk === '..') - return 'f'; - else if (index === array.length - 1 && index > 0 && array[index - 1] === '..') - return 'd'; - else if (index === array.length - 1) - return 'z'; - return 'e'; - }).join(''); - } - } -} -exports.default = FileItem; -//# sourceMappingURL=FileItem.js.map \ No newline at end of file diff --git a/dist/FileItem.js.map b/dist/FileItem.js.map deleted file mode 100644 index 9b14b78..0000000 --- a/dist/FileItem.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../edge/FileItem.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAChC,6BAA4B;AAC5B,4BAA2B;AAG3B,yCAAiC;AAEjC;IAOC,YAAY,QAAoB;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAE7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAA;QACrI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAE9G,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,KAAK,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAA;IACjI,CAAC;IAED,kBAAkB,CAAC,oBAA4B;QAC9C,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QAExB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QAExB,CAAC;QAAC,IAAI,CAAC,CAAC;YACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;gBAC1G,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;oBAAC,MAAM,CAAC,GAAG,CAAA;gBAC7B,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,MAAM,CAAC,GAAG,CAAA;gBACnC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;oBAAC,MAAM,CAAC,GAAG,CAAA;gBACzF,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBAAC,MAAM,CAAC,GAAG,CAAA;gBAC/C,MAAM,CAAC,GAAG,CAAA;YACX,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACZ,CAAC;IACF,CAAC;CACD;AAjCD,2BAiCC"} \ No newline at end of file diff --git a/dist/FilePattern.js b/dist/FilePattern.js deleted file mode 100644 index aecf6d7..0000000 --- a/dist/FilePattern.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const vscode = require("vscode"); -const path = require("path"); -const _ = require("lodash"); -const minimatch_1 = require("minimatch"); -const FileInfo_1 = require("./FileInfo"); -class FilePattern { - get insertAt() { - return this.config.insertAt; - } - constructor(config) { - this.config = config; - const multiPaths = typeof config.path === 'string' ? [config.path] : config.path; - this.inclusionList = multiPaths.filter(item => item.startsWith('!') === false); - this.exclusionList = _.difference(multiPaths, this.inclusionList).map(item => _.trimStart(item, '!')); - const endOfLine = vscode.workspace.getConfiguration('files').get('eol'); - this.interpolate = _.template(_.isArray(config.code) ? config.code.join(endOfLine) : config.code); - } - check(document) { - if (this.config.when) { - try { - return Boolean(_.template('${' + this.config.when + '}')({ - _, - minimatch: // Lodash - minimatch_1.match, - path, - activeDocument: document, - activeFile: new FileInfo_1.default(document.fileName), - })); - } - catch (ex) { - console.error(ex); - return false; - } - } - return true; - } - match(givenPath) { - const matcher = (glob) => minimatch_1.match([givenPath], glob).length > 0; - return this.inclusionList.some(matcher) && !this.exclusionList.some(matcher); - } - getRelativeFilePath(fileInfo, currentDirectoryPath) { - let relativeFilePath = fileInfo.getRelativePath(currentDirectoryPath); - if (this.config.omitIndexInSelectFilePath && fileInfo.fileNameWithoutExtension === 'index') { - relativeFilePath = _.trimEnd(relativeFilePath.substring(0, relativeFilePath.length - fileInfo.fileNameWithExtension.length), '/'); - } - else if (this.config.omitExtensionInSelectFilePath === true || typeof this.config.omitExtensionInSelectFilePath === 'string' && minimatch_1.match([fileInfo.fileExtensionWithoutLeadingDot], this.config.omitExtensionInSelectFilePath).length > 0) { - relativeFilePath = relativeFilePath.substring(0, relativeFilePath.length - 1 - fileInfo.fileExtensionWithoutLeadingDot.length); - } - return relativeFilePath; - } -} -exports.default = FilePattern; -//# sourceMappingURL=FilePattern.js.map \ No newline at end of file diff --git a/dist/FilePattern.js.map b/dist/FilePattern.js.map deleted file mode 100644 index e1e833b..0000000 --- a/dist/FilePattern.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"FilePattern.js","sourceRoot":"","sources":["../edge/FilePattern.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/NodeItem.js b/dist/NodeItem.js deleted file mode 100644 index 078983c..0000000 --- a/dist/NodeItem.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const vscode = require("vscode"); -const path = require("path"); -class NodeItem { - constructor(nodeName) { - this.description = ''; - this.version = ''; - this.label = nodeName; - this.name = nodeName; - try { - const packageJson = require(path.join(vscode.workspace.rootPath, 'node_modules', nodeName, 'package.json')); - if (packageJson.version) { - this.description = 'v' + packageJson.version; - this.version = packageJson.version; - } - } - catch (ex) { } - } -} -exports.default = NodeItem; -//# sourceMappingURL=NodeItem.js.map \ No newline at end of file diff --git a/dist/NodeItem.js.map b/dist/NodeItem.js.map deleted file mode 100644 index 44c21b7..0000000 --- a/dist/NodeItem.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NodeItem.js","sourceRoot":"","sources":["../edge/NodeItem.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAChC,6BAA4B;AAI5B;IAMC,YAAY,QAAgB;QAJnB,gBAAW,GAAW,EAAE,CAAA;QAExB,YAAO,GAAW,EAAE,CAAA;QAG5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;QAEpB,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;YAC3G,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAA;gBAC5C,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;YACnC,CAAC;QACF,CAAC;QAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;CACD;AAlBD,2BAkBC"} \ No newline at end of file diff --git a/dist/NodePattern.js b/dist/NodePattern.js deleted file mode 100644 index e994e23..0000000 --- a/dist/NodePattern.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const vscode = require("vscode"); -const _ = require("lodash"); -const minimatch_1 = require("minimatch"); -class NodePattern { - get insertAt() { - return this.config.insertAt; - } - constructor(config) { - this.config = config; - const endOfLine = vscode.workspace.getConfiguration('files').get('eol'); - this.interpolate = _.template(_.isArray(config.code) ? config.code.join(endOfLine) : config.code); - } - match(givenPath) { - return minimatch_1.match([givenPath], this.config.name).length > 0; - } -} -exports.default = NodePattern; -//# sourceMappingURL=NodePattern.js.map \ No newline at end of file diff --git a/dist/NodePattern.js.map b/dist/NodePattern.js.map deleted file mode 100644 index c2d8080..0000000 --- a/dist/NodePattern.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NodePattern.js","sourceRoot":"","sources":["../edge/NodePattern.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAChC,4BAA2B;AAC3B,yCAA8C;AAE9C;IAIC,IAAI,QAAQ;QACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,YAAY,MAAyB;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAS,KAAK,CAAC,CAAA;QAC/E,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAClG,CAAC;IAED,KAAK,CAAC,SAAiB;QACtB,MAAM,CAAC,iBAAS,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3D,CAAC;CACD;AAlBD,8BAkBC"} \ No newline at end of file diff --git a/dist/Shared.js b/dist/Shared.js deleted file mode 100644 index b275aa2..0000000 --- a/dist/Shared.js +++ /dev/null @@ -1,80 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const _ = require("lodash"); -const babylon = require("babylon"); -exports.PATH_SEPARATOR_FOR_WINDOWS = /\\/g; -exports.DRIVE_LETTER_FOR_WINDOWS = /^(\w+):\\/; -exports.CURRENT_DIRECTORY_SEMANTIC = /^\.\//; -exports.UPPER_DIRECTORY_SEMANTIC = /\.\.\//g; -exports.INDEX_FILE = /^index\.\w+$/i; -exports.EXPORT_DEFAULT = { type: 'ExportDefaultDeclaration' }; -exports.MODULE_EXPORTS = { - type: 'ExpressionStatement', - expression: { - type: 'AssignmentExpression', - left: { - type: 'MemberExpression', - object: { type: 'Identifier', name: 'module' }, - property: { type: 'Identifier', name: 'exports' } - } - } -}; -function getProperVariableName(fileName) { - const words = _.words(fileName); - let pivot = 0; - let parts = []; - words.forEach(word => { - const index = fileName.indexOf(word, pivot); - parts.push((fileName.substring(pivot, index).match(/[_\$]+/g) || []).join('')); - parts.push(_.upperFirst(word)); - }); - parts = _.compact(parts); - if (/^\d+/.test(parts[0])) { - const digit = parts[0].match(/^\d+/)[0]; - parts[0] = parts[0].substring(digit.length); - parts.push(digit); - } - return parts.join(''); -} -exports.getProperVariableName = getProperVariableName; -function getCodeTree(text, fileExtensionOrLanguageId, plugins = []) { - if (/^(javascript|javascriptreact|js|jsx|typescript|typescriptreact|ts|tsx)$/.test(fileExtensionOrLanguageId) === false) { - return null; - } - try { - return babylon.parse(text, { sourceType: 'module', plugins: [...plugins] }); - } - catch (ex) { - console.error(ex); - return null; - } -} -exports.getCodeTree = getCodeTree; -function findInCodeTree(source, target) { - if (source === null) { - return undefined; - } - else if (source['type'] === 'File' && source['program']) { - return findInCodeTree(source['program'], target); - } - else if (_.isMatch(source, target)) { - return source; - } - else if (_.isArrayLike(source['body'])) { - for (let index = 0; index < source['body'].length; index++) { - const result = findInCodeTree(source['body'][index], target); - if (result !== undefined) { - return result; - } - } - return undefined; - } - else if (_.isObject(source['body'])) { - return findInCodeTree(source['body'], target); - } - else { - return undefined; - } -} -exports.findInCodeTree = findInCodeTree; -//# sourceMappingURL=Shared.js.map \ No newline at end of file diff --git a/dist/Shared.js.map b/dist/Shared.js.map deleted file mode 100644 index 50bacce..0000000 --- a/dist/Shared.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Shared.js","sourceRoot":"","sources":["../edge/Shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/extension.js b/dist/extension.js deleted file mode 100644 index e8cb821..0000000 --- a/dist/extension.js +++ /dev/null @@ -1,180 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const vscode = require("vscode"); -const path = require("path"); -const fs = require("fs"); -const _ = require("lodash"); -const minimatch_1 = require("minimatch"); -const Shared = require("./Shared"); -const FileInfo_1 = require("./FileInfo"); -const FilePattern_1 = require("./FilePattern"); -const NodePattern_1 = require("./NodePattern"); -const FileItem_1 = require("./FileItem"); -const NodeItem_1 = require("./NodeItem"); -const fileCache = new Map(); -const nodeCache = new Map(); -function activate(context) { - const config = vscode.workspace.getConfiguration('haste'); - const filePatterns = config.get('files', []).map(stub => new FilePattern_1.default(stub)); - const nodePatterns = config.get('nodes', []).map(stub => new NodePattern_1.default(stub)); - const parserPlugins = config.get('javascript.parser.plugins'); - let disposable = vscode.commands.registerCommand('haste', () => __awaiter(this, void 0, void 0, function* () { - // Stop processing if the VS Code is not working with folder, or the current document is untitled - if (vscode.workspace.rootPath === undefined || vscode.window.activeTextEditor === undefined || vscode.window.activeTextEditor.document.isUntitled) { - return null; - } - const currentDocument = vscode.window.activeTextEditor.document; - const currentFileInfo = new FileInfo_1.default(currentDocument.fileName); - let items = []; - // Add files which will be shown in VS Code picker - const applicableFilePatterns = filePatterns.filter(pattern => pattern.check(currentDocument)); - for (let index = 0; index < applicableFilePatterns.length; index++) { - const pattern = applicableFilePatterns[index]; - const inclusionList = pattern.inclusionList; - let inclusionPath; - if (inclusionList.length === 1) { - inclusionPath = inclusionList[0]; - } - else { - inclusionPath = '{' + inclusionList.join(',') + '}'; - } - const exclusionList = pattern.exclusionList; - let exclusionPath = null; - if (exclusionList.length === 1) { - exclusionPath = exclusionList[0]; - } - else if (exclusionList.length > 1) { - exclusionPath = '{' + exclusionList.join(',') + '}'; - } - const fileList = yield vscode.workspace.findFiles(inclusionPath, exclusionPath, 9000); - fileList.map(fileLink => { - if (fileCache.has(fileLink.fsPath) === false) { - fileCache.set(fileLink.fsPath, new FileItem_1.default(fileLink)); - } - return fileCache.get(fileLink.fsPath); - }).forEach(item => { - item.updateSortablePath(currentFileInfo.directoryPath); - if (item.fileInfo.localPath !== currentFileInfo.localPath) { - items.push(item); - } - }); - } - // Remove duplicate files and sort files - if (items.length > 0) { - items = _.uniq(items); - items = _.sortBy(items, [ - (item) => item.sortablePath, - (item) => item.sortableName, - ]); - } - // Add node modules which will be shown in VS Code picker - if (fs.existsSync(path.join(vscode.workspace.rootPath, 'package.json'))) { - const packageJson = require(path.join(vscode.workspace.rootPath, 'package.json')); - items = items.concat(_.chain([_.keys(packageJson.devDependencies), _.keys(packageJson.dependencies)]) - .flatten() - .map(nodeName => { - if (nodeCache.has(nodeName) === false) { - const pattern = nodePatterns.find(pattern => pattern.match(nodeName)); - if (pattern) { - nodeCache.set(nodeName, new NodeItem_1.default(nodeName)); - } - else { - return null; - } - } - return nodeCache.get(nodeName); - }) - .compact() - .sortBy((item) => item.name) - .value()); - } - // Stop processing if the current editor is not active - const editor = vscode.window.activeTextEditor; - if (!editor) { - return null; - } - // Show VS Code picker and await user for the selection - const select = yield vscode.window.showQuickPick(items, { placeHolder: 'Type a file path or node module name' }); - // Stop processing if there is no selection - if (!select) { - return null; - } - // Read all `import` statements of the current viewing document (JavaScript only) - const currentCodeTree = Shared.getCodeTree(currentDocument.getText(), currentDocument.languageId, parserPlugins); - let existingImportStatements = []; - if (currentCodeTree && currentCodeTree.program && currentCodeTree.program.body) { - existingImportStatements = currentCodeTree.program.body.filter((line) => line.type === 'ImportDeclaration' && line.source); - } - // Create a snippet - let snippet = ''; - let insertAt; - if (select instanceof NodeItem_1.default) { - const pattern = nodePatterns.find(pattern => pattern.match(select.name)); - insertAt = pattern.insertAt; - // Stop processing if the select file does exist in the current viewing document - if (existingImportStatements.find((line) => line.source.type === 'StringLiteral' && line.source.value === select.name)) { - vscode.window.showInformationMessage(`The module '${select.name}' has been already imported.`); - return null; - } - snippet = pattern.interpolate(Object.assign({ _, - minimatch: // Lodash - minimatch_1.match, - path, activeDocument: currentDocument, activeFileInfo: currentFileInfo, moduleName: select.name, moduleVersion: select.version }, Shared)); - } - else if (select instanceof FileItem_1.default) { - const selectPathInUnixStyleThatIsRelativeToRootPath = _.trimStart(select.fileInfo.localPath.substring(vscode.workspace.rootPath.length).replace(Shared.PATH_SEPARATOR_FOR_WINDOWS, '/'), '/'); - const pattern = filePatterns.find(pattern => pattern.match(selectPathInUnixStyleThatIsRelativeToRootPath) && pattern.check(currentDocument)); - insertAt = pattern.insertAt; - const selectCodeText = fs.readFileSync(select.fileInfo.localPath, 'utf-8'); - const selectCodeTree = Shared.getCodeTree(selectCodeText, select.fileInfo.fileExtensionWithoutLeadingDot, parserPlugins); - const selectRelativeFilePath = pattern.getRelativeFilePath(select.fileInfo, currentFileInfo.directoryPath); - if (existingImportStatements.find((line) => line.source.type === 'StringLiteral' && line.source.value === selectRelativeFilePath)) { - vscode.window.showErrorMessage(`The file '${selectRelativeFilePath}' has been already imported.`); - return null; - } - snippet = pattern.interpolate(Object.assign({ _, - minimatch: // Lodash - minimatch_1.match, - path, activeDocument: currentDocument, activeFileInfo: currentFileInfo, selectFileInfo: select.fileInfo, selectFilePath: selectRelativeFilePath, selectCodeText: selectCodeText, selectCodeTree: selectCodeTree, selectFileHasDefaultExport: selectCodeTree === null || Shared.findInCodeTree(selectCodeTree, Shared.EXPORT_DEFAULT) !== undefined || Shared.findInCodeTree(selectCodeTree, Shared.MODULE_EXPORTS) !== undefined }, Shared)); - } - // Write a snippet to the current viewing document - editor.edit(worker => { - let position; - if (insertAt === 'beforeFirstImport' && existingImportStatements.length > 0) { - position = new vscode.Position(_.first(existingImportStatements).loc.start.line - 1, _.first(existingImportStatements).loc.start.column); - } - else if (insertAt === 'beforeFirstImport' && existingImportStatements.length === 0 || insertAt === 'top') { - position = new vscode.Position(0, 0); - } - else if (insertAt === 'afterLastImport' && existingImportStatements.length > 0) { - position = new vscode.Position(_.last(existingImportStatements).loc.end.line, 0); - } - else if (insertAt === 'afterLastImport' && existingImportStatements.length === 0 || insertAt === 'bottom') { - position = new vscode.Position(currentDocument.lineCount, 0); - } - else { - position = editor.selection.active; - } - worker.insert(position, snippet); - }); - })); - vscode.workspace.onDidChangeConfiguration(() => { - vscode.window.showInformationMessage('VS Code must be restarted in order to make changes to Haste extension.'); - }); - context.subscriptions.push(disposable); -} -exports.activate = activate; -function deactivate() { - fileCache.clear(); - nodeCache.clear(); -} -exports.deactivate = deactivate; -//# sourceMappingURL=extension.js.map \ No newline at end of file diff --git a/dist/extension.js.map b/dist/extension.js.map deleted file mode 100644 index eef4945..0000000 --- a/dist/extension.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../edge/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file