Skip to content
Snippets Groups Projects
Commit 5529437e authored by 最萌小汐's avatar 最萌小汐
Browse files

don't commit out files

parent 8aa7835e
No related branches found
No related tags found
No related merge requests found
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.deactivate = exports.activate = void 0;
const languageserver = require("./languageserver");
const psi = require("./psi/psiViewer");
let luadoc = require('../3rd/vscode-lua-doc/extension.js');
function activate(context) {
languageserver.activate(context);
let luaDocContext = {
ViewType: undefined,
OpenCommand: undefined,
extensionPath: undefined,
};
for (const k in context) {
try {
luaDocContext[k] = context[k];
}
catch (error) { }
}
luaDocContext.ViewType = 'lua-doc';
luaDocContext.OpenCommand = 'extension.lua.doc';
luaDocContext.extensionPath = context.extensionPath + '/client/3rd/vscode-lua-doc';
luadoc.activate(luaDocContext);
psi.activate(context);
return {
reportAPIDoc(params) {
return __awaiter(this, void 0, void 0, function* () {
yield languageserver.reportAPIDoc(params);
});
}
};
}
exports.activate = activate;
function deactivate() {
languageserver.deactivate();
}
exports.deactivate = deactivate;
//# sourceMappingURL=extension.js.map
\ No newline at end of file
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.reportAPIDoc = exports.deactivate = exports.activate = exports.defaultClient = void 0;
const path = require("path");
const os = require("os");
const fs = require("fs");
const vscode = require("vscode");
const vscode_1 = require("vscode");
const node_1 = require("vscode-languageclient/node");
function registerCustomCommands(context) {
context.subscriptions.push(vscode_1.commands.registerCommand('lua.config', (changes) => {
let propMap = new Map();
for (const data of changes) {
let config = vscode_1.workspace.getConfiguration(undefined, vscode_1.Uri.parse(data.uri));
if (data.action == 'add') {
let value = config.get(data.key);
value.push(data.value);
config.update(data.key, value, data.global);
continue;
}
if (data.action == 'set') {
config.update(data.key, data.value, data.global);
continue;
}
if (data.action == 'prop') {
if (!propMap[data.key]) {
propMap[data.key] = config.get(data.key);
}
propMap[data.key][data.prop] = data.value;
config.update(data.key, propMap[data.key], data.global);
continue;
}
}
}));
}
class LuaClient {
constructor(context, documentSelector) {
this.context = context;
this.documentSelector = documentSelector;
this.disposables = new Array();
}
start() {
var _a;
return __awaiter(this, void 0, void 0, function* () {
// Options to control the language client
let clientOptions = {
// Register the server for plain text documents
documentSelector: this.documentSelector,
progressOnInitialization: true,
markdown: {
isTrusted: true,
supportHtml: true,
},
initializationOptions: {
changeConfiguration: true,
}
};
let config = vscode_1.workspace.getConfiguration(undefined, (_a = vscode.workspace.workspaceFolders) === null || _a === void 0 ? void 0 : _a[0]);
let commandParam = config.get("Lua.misc.parameters");
let command = yield this.getCommand(config);
let serverOptions = {
command: command,
args: commandParam,
};
this.client = new node_1.LanguageClient('Lua', 'Lua', serverOptions, clientOptions);
//client.registerProposedFeatures();
yield this.client.start();
this.onCommand();
this.statusBar();
});
}
getCommand(config) {
return __awaiter(this, void 0, void 0, function* () {
let executablePath = config.get("Lua.misc.executablePath");
if (executablePath && executablePath != "") {
return executablePath;
}
let command;
let platform = os.platform();
let binDir;
if ((yield fs.promises.stat(this.context.asAbsolutePath('server/bin'))).isDirectory()) {
binDir = 'bin';
}
switch (platform) {
case "win32":
command = this.context.asAbsolutePath(path.join('server', binDir ? binDir : 'bin-Windows', 'lua-language-server.exe'));
break;
case "linux":
command = this.context.asAbsolutePath(path.join('server', binDir ? binDir : 'bin-Linux', 'lua-language-server'));
yield fs.promises.chmod(command, '777');
break;
case "darwin":
command = this.context.asAbsolutePath(path.join('server', binDir ? binDir : 'bin-macOS', 'lua-language-server'));
yield fs.promises.chmod(command, '777');
break;
}
return command;
});
}
stop() {
return __awaiter(this, void 0, void 0, function* () {
this.client.stop();
for (const disposable of this.disposables) {
disposable.dispose();
}
});
}
statusBar() {
let client = this.client;
let bar = vscode_1.window.createStatusBarItem();
bar.text = 'Lua';
bar.command = 'Lua.statusBar';
this.disposables.push(vscode_1.commands.registerCommand(bar.command, () => {
client.sendNotification('$/status/click');
}));
this.disposables.push(client.onNotification('$/status/show', (params) => {
bar.show();
}));
this.disposables.push(client.onNotification('$/status/hide', (params) => {
bar.hide();
}));
this.disposables.push(client.onNotification('$/status/report', (params) => {
bar.text = params.text;
bar.tooltip = params.tooltip;
}));
client.sendNotification('$/status/refresh');
this.disposables.push(bar);
}
onCommand() {
this.disposables.push(this.client.onNotification('$/command', (params) => {
vscode_1.commands.executeCommand(params.command, params.data);
}));
}
}
function activate(context) {
registerCustomCommands(context);
function didOpenTextDocument(document) {
// We are only interested in language mode text
if (document.languageId !== 'lua' || (document.uri.scheme !== 'file' && document.uri.scheme !== 'untitled')) {
return;
}
// Untitled files go to a default client.
if (!exports.defaultClient) {
exports.defaultClient = new LuaClient(context, [
{ language: 'lua' }
]);
exports.defaultClient.start();
return;
}
}
vscode_1.workspace.onDidOpenTextDocument(didOpenTextDocument);
vscode_1.workspace.textDocuments.forEach(didOpenTextDocument);
}
exports.activate = activate;
function deactivate() {
return __awaiter(this, void 0, void 0, function* () {
if (exports.defaultClient) {
exports.defaultClient.stop();
exports.defaultClient = null;
}
return undefined;
});
}
exports.deactivate = deactivate;
function reportAPIDoc(params) {
return __awaiter(this, void 0, void 0, function* () {
if (!exports.defaultClient) {
return;
}
exports.defaultClient.client.sendNotification('$/api/report', params);
});
}
exports.reportAPIDoc = reportAPIDoc;
//# sourceMappingURL=languageserver.js.map
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.activate = void 0;
const fs = require("fs");
const path = require("path");
const vscode = require("vscode");
const languageserver_1 = require("../languageserver");
const LANGUAGE_ID = "lua";
/**
* Manages webview panels
*/
class PsiViewer {
constructor(context, column) {
this.context = context;
this.disposables = [];
this.extensionPath = context.extensionPath;
this.builtAppFolder = PsiViewer.distDirectory;
// Create and show a new webview panel
this.panel = vscode.window.createWebviewPanel(PsiViewer.viewType, PsiViewer.title, column, {
// Enable javascript in the webview
enableScripts: true,
// And restrict the webview to only loading content from our extension's `media` directory.
localResourceRoots: [vscode.Uri.file(path.join(this.extensionPath, this.builtAppFolder))]
});
// Set the webview's initial html content
this.panel.webview.html = this._getHtmlForWebview();
// Listen for when the panel is disposed
// This happens when the user closes the panel or when the panel is closed programatically
this.panel.onDidDispose(() => this.dispose(), null, this.disposables);
}
static createOrShow(context) {
// const column = vscode.window.activeTextEditor ? vscode.window.activeTextEditor.viewColumn : undefined;
// If we already have a panel, show it.
// Otherwise, create angular panel.
if (PsiViewer.currentPanel) {
PsiViewer.currentPanel.panel.reveal(vscode.ViewColumn.Two);
}
else {
PsiViewer.currentPanel = new PsiViewer(context, vscode.ViewColumn.Two);
PsiViewer.currentPanel.active(context);
}
return PsiViewer.currentPanel;
}
dispose() {
PsiViewer.currentPanel = undefined;
// Clean up our resources
this.panel.dispose();
while (this.disposables.length) {
const x = this.disposables.pop();
if (x) {
x.dispose();
}
}
}
post(message) {
this.panel.webview.postMessage(message);
}
/**
* Returns html of the start page (index.html)
*/
_getHtmlForWebview() {
// path to dist folder
const appDistPath = path.join(this.extensionPath, PsiViewer.distDirectory);
const appDistPathUri = vscode.Uri.file(appDistPath);
// path as uri
const baseUri = this.panel.webview.asWebviewUri(appDistPathUri);
// get path to index.html file from dist folder
const indexPath = path.join(appDistPath, 'index.html');
// read index file from file system
let indexHtml = fs.readFileSync(indexPath, { encoding: 'utf8' });
// update the base URI tag
indexHtml = indexHtml.replace('<base href="/">', `<base href="${String(baseUri)}/">`);
return indexHtml;
}
active(context) {
context.subscriptions.push(vscode.workspace.onDidChangeTextDocument(PsiViewer.onDidChangeTextDocument, null, context.subscriptions));
context.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(PsiViewer.onDidChangeActiveTextEditor, null, context.subscriptions));
context.subscriptions.push(vscode.window.onDidChangeTextEditorSelection(PsiViewer.onDidChangeSelection, null, context.subscriptions));
}
requestPsi(editor) {
if (this.timeoutToReqAnn) {
clearTimeout(this.timeoutToReqAnn);
}
this.timeoutToReqAnn = setTimeout(() => {
this.requestPsiImpl(editor);
}, 150);
}
requestPsiImpl(editor) {
const client = languageserver_1.defaultClient.client;
let params = { uri: editor.document.uri.toString() };
client === null || client === void 0 ? void 0 : client.sendRequest("$/psi/view", params).then(result => {
if (result) {
this.post({
type: "psi",
value: [result.data]
});
}
});
}
requestPsiSelect(position, uri) {
const client = languageserver_1.defaultClient.client;
let params = { uri: uri.toString(), position };
client === null || client === void 0 ? void 0 : client.sendRequest("$/psi/select", params).then(result => {
if (result) {
this.post({
type: "psi_select",
value: result.data
});
}
});
}
static onDidChangeTextDocument(event) {
const activeEditor = vscode.window.activeTextEditor;
const viewer = PsiViewer.currentPanel;
if (activeEditor
&& activeEditor.document === event.document
&& activeEditor.document.languageId === LANGUAGE_ID) {
viewer.requestPsi(activeEditor);
}
}
static onDidChangeActiveTextEditor(editor) {
const viewer = PsiViewer.currentPanel;
if (editor
&& editor.document.languageId === LANGUAGE_ID) {
viewer.requestPsi(editor);
}
}
static onDidChangeSelection(e) {
if (e.kind == vscode.TextEditorSelectionChangeKind.Mouse
|| e.kind == vscode.TextEditorSelectionChangeKind.Keyboard) {
const viewer = PsiViewer.currentPanel;
if (viewer) {
viewer.requestPsiSelect(e.selections[0].start, e.textEditor.document.uri);
}
}
}
}
PsiViewer.viewType = 'LuaPsiView';
PsiViewer.title = "LuaPsiView";
PsiViewer.distDirectory = "client/web/dist";
function activate(context) {
context.subscriptions.push(vscode.commands.registerCommand('lua.psi.view', () => {
PsiViewer.createOrShow(context);
}));
}
exports.activate = activate;
//# sourceMappingURL=psiViewer.js.map
\ No newline at end of file
{"version":3,"file":"psiViewer.js","sourceRoot":"","sources":["../../src/psi/psiViewer.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AACjC,sDAAkD;AAElD,MAAM,WAAW,GAAW,KAAK,CAAC;AAClC;;GAEG;AACH,MAAM,SAAS;IA8BX,YAA4B,OAAgC,EAAE,MAAyB;QAA3D,YAAO,GAAP,OAAO,CAAyB;QAjBpD,gBAAW,GAAwB,EAAE,CAAC;QAkB1C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC;QAE9C,sCAAsC;QACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;YACvF,mCAAmC;YACnC,aAAa,EAAE,IAAI;YAEnB,2FAA2F;YAC3F,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SAC5F,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEpD,wCAAwC;QACxC,0FAA0F;QAC1F,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAjCM,MAAM,CAAC,YAAY,CAAC,OAAgC;QACvD,yGAAyG;QAEzG,uCAAuC;QACvC,mCAAmC;QACnC,IAAI,SAAS,CAAC,YAAY,EAAE;YACxB,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9D;aAAM;YACH,SAAS,CAAC,YAAY,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACvE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC1C;QACD,OAAO,SAAS,CAAC,YAAY,CAAC;IAClC,CAAC;IAuBM,OAAO;QACV,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC;QAEnC,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAErB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE;gBACH,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;SACJ;IACL,CAAC;IAEM,IAAI,CAAC,OAAY;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,kBAAkB;QACtB,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,cAAc;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEhE,+CAA+C;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEvD,mCAAmC;QACnC,IAAI,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjE,0BAA0B;QAC1B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,eAAe,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEtF,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,OAAgC;QAC3C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QACrI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,SAAS,CAAC,2BAA2B,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1I,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1I,CAAC;IAEO,UAAU,CAAC,MAAyB;QACxC,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,MAAyB;QAC5C,MAAM,MAAM,GAAG,8BAAa,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,GAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAgB,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACnE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC;oBACN,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;iBACvB,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,gBAAgB,CAAC,QAAyB,EAAE,GAAe;QAC/D,MAAM,MAAM,GAAG,8BAAa,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,GAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;QACpD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAgB,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACrE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC;oBACN,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,MAAM,CAAC,IAAI;iBACrB,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,KAAqC;QACxE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;QACtC,IAAI,YAAY;eACT,YAAY,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;eACxC,YAAY,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;YACrD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,MAAM,CAAC,2BAA2B,CAAC,MAAqC;QAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;QACtC,IAAI,MAAM;eACH,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;YAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC7B;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,CAAwC;QACxE,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,6BAA6B,CAAC,KAAK;eACjD,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,6BAA6B,CAAC,QAAQ,EAAE;YAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;YACtC,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;aAC5E;SACJ;IACL,CAAC;;AAzJuB,kBAAQ,GAAG,YAAY,CAAC;AACxB,eAAK,GAAG,YAAY,CAAC;AACrB,uBAAa,GAAG,iBAAiB,CAAC;AA2J9D,SAAgB,QAAQ,CAAC,OAAgC;IACrD,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE;QACjD,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAND,4BAMC"}
\ No newline at end of file
......@@ -128,7 +128,6 @@ print('开始复制文件...')
local count = copyFiles(ROOT , out) {
['client'] = {
['node_modules'] = true,
['out'] = true,
['package.json'] = true,
['3rd'] = {
['vscode-lua-doc'] = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment