From 40b7fedcfa2c8f4933b56007b2b601f80c26ffa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Fri, 22 Nov 2019 23:06:57 +0800 Subject: =?UTF-8?q?VSCode=E7=94=A8=E7=9A=84=E6=96=87=E4=BB=B6=E6=8C=AA?= =?UTF-8?q?=E8=B5=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscodeignore | 13 - README.md | 134 -------- azure-pipelines.yml | 116 ------- client/out/extension.js | 60 ---- client/out/extension.js.map | 1 - client/package-lock.json | 758 ------------------------------------------- client/package.json | 26 -- client/src/extension.ts | 98 ------ client/tsconfig.json | 12 - package-lock.json | 5 - package.json | 412 ----------------------- package.nls.json | 24 -- package.nls.zh-cn.json | 24 -- syntaxes/lua.tmLanguage.json | 319 ------------------ tsconfig.json | 19 -- 15 files changed, 2021 deletions(-) delete mode 100644 .vscodeignore delete mode 100644 README.md delete mode 100644 azure-pipelines.yml delete mode 100644 client/out/extension.js delete mode 100644 client/out/extension.js.map delete mode 100644 client/package-lock.json delete mode 100644 client/package.json delete mode 100644 client/src/extension.ts delete mode 100644 client/tsconfig.json delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 package.nls.json delete mode 100644 package.nls.zh-cn.json delete mode 100644 syntaxes/lua.tmLanguage.json delete mode 100644 tsconfig.json diff --git a/.vscodeignore b/.vscodeignore deleted file mode 100644 index 88634d0d..00000000 --- a/.vscodeignore +++ /dev/null @@ -1,13 +0,0 @@ -.vscode/** -**/*.ts -**/*.map -.gitignore -**/tsconfig.json -**/tsconfig.base.json -contributing.md -.travis.yml -client/node_modules/** -!client/node_modules/vscode-jsonrpc/** -!client/node_modules/vscode-languageclient/** -!client/node_modules/vscode-languageserver-protocol/** -!client/node_modules/vscode-languageserver-types/** \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index c7cb6cb0..00000000 --- a/README.md +++ /dev/null @@ -1,134 +0,0 @@ -# lua-language-server - -| Windows | Linux | macOS | -| ------- | ----- | ----- | -| [![Build Status](https://dev.azure.com/sumneko/lua-language-server/_apis/build/status/sumneko.lua-language-server?branchName=master&jobName=windows)](https://dev.azure.com/sumneko/lua-language-server/_build/latest?definitionId=1&branchName=master) | [![Build Status](https://dev.azure.com/sumneko/lua-language-server/_apis/build/status/sumneko.lua-language-server?branchName=master&jobName=linux)](https://dev.azure.com/sumneko/lua-language-server/_build/latest?definitionId=1&branchName=master) | [![Build Status](https://dev.azure.com/sumneko/lua-language-server/_apis/build/status/sumneko.lua-language-server?branchName=master&jobName=macos)](https://dev.azure.com/sumneko/lua-language-server/_build/latest?definitionId=1&branchName=master) - -## Feature - -- [x] Goto Definition -- [x] Find All References -- [x] Hover -- [x] Diagnostics -- [x] Rename -- [x] Auto Completion -- [x] IntelliSense -- [x] Signature Help -- [x] Document Symbols -- [x] Syntax Check -- [x] Highlight -- [x] Code Action -- [x] EmmyLua Annotation -- [ ] Multi Workspace -- [ ] Type Format - -## Preview - -### Goto Definition - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images//Goto%20Definition.gif) - -### Find All References - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images//Find%20All%20References.gif) - -### Hover - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images/Hover.gif) - -### Diagnostics - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images/Diagnostics.gif) - -### Rename - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images/Rename.gif) - -### Auto Completion - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images/Auto%20Completion.gif) - -### Signature Help - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images/Signature%20Help.gif) - -### Emmy Annotation - -![avatar](https://github.com/sumneko/lua-language-server/raw/master/images/Emmy%20Annotation.gif) - -## How to use on macOS/Linux - -You need to build `lua-language-server` yourself on macOS/Linux. - -* Install [sumneko.lua] in VSCode -* Install [extension-path] in VSCode -* Install [ninja] -* Clone source code -``` -git clone https://github.com/sumneko/lua-language-server -cd lua-language-server -git submodule update --init --recursive -``` -* Open repo and execute tasks in VSCode - 1. PreCompile - 2. Compile - 3. Install -* Restart VSCode and open your lua project -* Enjoy - -[ninja]: https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages -[sumneko.lua]: https://marketplace.visualstudio.com/items?itemName=sumneko.lua -[extension-path]: https://marketplace.visualstudio.com/items?itemName=actboy168.extension-path - -## Version - -- [x] Lua 5.1 -- [x] Lua 5.2 -- [x] Lua 5.3 -- [x] Lua 5.4 -- [x] LuaJIT - -If you find any mistakes, please [tell me][issues] or use [Pull Requests][@lua] to fix them directly. - -如果你发现了任何错误,请[告诉我][issues]或使用[Pull Requests][@lua]来直接修复。 - -[issues]: https://github.com/sumneko/lua-language-server/issues -[@lua]: https://github.com/sumneko/lua-language-server/tree/master/server/libs/%40lua - -## Locale - -- [x] en-US -- [x] zh-CN - -Please [help me][en-US] improve the quality of `en-US`. - -[en-US]: https://github.com/sumneko/vscode-lua-language-server/tree/master/server/locale/en-US - -## Credit - -* [bee.lua](https://github.com/actboy168/bee.lua) -* [luamake](https://github.com/actboy168/luamake) -* [lni](https://github.com/actboy168/lni) -* [LPegLabel](https://github.com/sqmedeiros/lpeglabel) -* [LuaParser](https://github.com/sumneko/LuaParser) -* [rcedit](https://github.com/electron/rcedit) -* [ScreenToGif](https://github.com/NickeManarin/ScreenToGif) -* [vscode-languageclient](https://github.com/microsoft/vscode-languageserver-node) -* [lua.tmbundle](https://github.com/textmate/lua.tmbundle) -* [Lua 5.3 中文翻译](https://cloudwu.github.io/lua53doc/manual.html) -* [EmmyLua](https://emmylua.github.io) -* [lua-glob](https://github.com/sumneko/lua-glob) -* [lua-uri](https://github.com/sumneko/lua-uri) -* [JSON4Lua](http://github.com/craigmj/json4lua/) - -## Acknowledgement - -* [actboy168](https://github.com/actboy168) -* [Dmitry Sannikov](https://github.com/dasannikov) -* [Jayden Charbonneau](https://github.com/Reshiram110) -* [Stjepan Bakrac](https://github.com/z16) -* [Peter Young](https://github.com/young40) -* [Li Xiaobin](https://github.com/Xiaobin0860) -* [Fedora7](https://github.com/Fedora7) -* [Allen Shaw](https://github.com/shuxiao9058) -* [Bartel](https://github.com/Letrab) diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index aebf9ccb..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,116 +0,0 @@ -trigger: -- master - -jobs: -- job: windows - pool: - vmImage: 'windows-latest' - - steps: - - script: | - git submodule update --init --recursive - displayName: 'Init' - - script: | - cd 3rd\luamake - tools\ninja.exe -f ninja\msvc.ninja - cd ..\.. - displayName: 'Compile luamake' - - script: | - 3rd\luamake\luamake.exe rebuild - displayName: 'Compile' - - script: | - cd client - npm install - cd .. - displayName: 'Install Client' - - script: | - server\Windows\bin\lua.exe server\publish.lua - displayName: 'Publish' - - task: CopyFiles@2 - inputs: - Contents: '**' - SourceFolder: 'publish\lua' - TargetFolder: '$(Build.ArtifactStagingDirectory)' - - task: PublishBuildArtifacts@1 - inputs: - pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: sumneko.lua-windows - -- job: macos - pool: - vmImage: 'macos-latest' - - steps: - - bash: | - git submodule update --init --recursive - displayName: 'Init' - - bash: | - sudo xcode-select -s /Applications/Xcode_10.2.app - brew install ninja - displayName: 'Install' - - bash: | - cd 3rd/luamake - ninja -f ninja/macos.ninja - cd ../.. - displayName: 'Compile luamake' - - bash: | - rm -r server/macOS/* - ./3rd/luamake/luamake rebuild - displayName: 'Compile' - - bash: | - cd client - npm install - cd .. - displayName: 'Install Client' - - bash: | - ./server/macOS/bin/lua server/publish.lua - displayName: 'Publish' - - task: CopyFiles@2 - inputs: - Contents: '**' - SourceFolder: 'publish/lua' - TargetFolder: '$(Build.ArtifactStagingDirectory)' - - task: PublishBuildArtifacts@1 - inputs: - pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: sumneko.lua-macos - -- job: linux - pool: - vmImage: 'ubuntu-latest' - - steps: - - bash: | - git submodule update --init --recursive - displayName: 'Init' - - bash: | - sudo apt-get update - sudo apt-get install -y libreadline-dev ninja-build - sudo apt-get install -y g++-8 - displayName: 'Install' - - bash: | - cd 3rd/luamake - ninja -f ninja/linux.ninja - cd ../.. - displayName: 'Compile luamake' - - bash: | - rm -r server/Linux/* - ./3rd/luamake/luamake rebuild - displayName: 'Compile' - - bash: | - cd client - npm install - cd .. - displayName: 'Install Client' - - bash: | - ./server/Linux/bin/lua server/publish.lua - displayName: 'Publish' - - task: CopyFiles@2 - inputs: - Contents: '**' - SourceFolder: 'publish/lua' - TargetFolder: '$(Build.ArtifactStagingDirectory)' - - task: PublishBuildArtifacts@1 - inputs: - pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: sumneko.lua-linux diff --git a/client/out/extension.js b/client/out/extension.js deleted file mode 100644 index fbc11bf3..00000000 --- a/client/out/extension.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -/* -------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - * ------------------------------------------------------------------------------------------ */ -Object.defineProperty(exports, "__esModule", { value: true }); -const path = require("path"); -const os = require("os"); -const fs = require("fs"); -const vscode_1 = require("vscode"); -const vscode_languageclient_1 = require("vscode-languageclient"); -let client; -function activate(context) { - let language = vscode_1.env.language; - // Options to control the language client - let clientOptions = { - // Register the server for plain text documents - documentSelector: [{ scheme: 'file', language: 'lua' }], - synchronize: { - // Notify the server about file changes to '.clientrc files contained in the workspace - fileEvents: vscode_1.workspace.createFileSystemWatcher('**/.clientrc') - } - }; - let beta = vscode_1.workspace.getConfiguration("Lua.zzzzzz").get("cat"); - let command; - let platform = os.platform(); - switch (platform) { - case "win32": - command = context.asAbsolutePath(path.join(beta ? 'server-beta' : 'server', 'Windows', 'bin', beta ? 'lua-beta.exe' : 'lua-language-server.exe')); - break; - case "linux": - command = context.asAbsolutePath(path.join(beta ? 'server-beta' : 'server', 'Linux', 'bin', beta ? 'lua-beta' : 'lua-language-server')); - fs.chmodSync(command, '777'); - break; - case "darwin": - command = context.asAbsolutePath(path.join(beta ? 'server-beta' : 'server', 'macOS', 'bin', beta ? 'lua-beta' : 'lua-language-server')); - fs.chmodSync(command, '777'); - break; - } - let serverOptions = { - command: command, - args: [ - '-E', - '-e', - 'LANG="' + language + '"', - context.asAbsolutePath(path.join(beta ? 'server-beta' : 'server', 'main.lua')) - ] - }; - client = new vscode_languageclient_1.LanguageClient('Lua', 'Lua', serverOptions, clientOptions); - client.start(); -} -exports.activate = activate; -function deactivate() { - if (!client) { - return undefined; - } - return client.stop(); -} -exports.deactivate = deactivate; -//# sourceMappingURL=extension.js.map \ No newline at end of file diff --git a/client/out/extension.js.map b/client/out/extension.js.map deleted file mode 100644 index 83b45de3..00000000 --- a/client/out/extension.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAEhG,6BAA6B;AAC7B,yBAAyB;AACzB,yBAAyB;AACzB,mCAA0D;AAE1D,iEAI+B;AAE/B,IAAI,MAAsB,CAAC;AAE3B,SAAgB,QAAQ,CAAC,OAAyB;IACjD,IAAI,QAAQ,GAAG,YAAG,CAAC,QAAQ,CAAC;IAE5B,yCAAyC;IACzC,IAAI,aAAa,GAA0B;QAC1C,+CAA+C;QAC/C,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvD,WAAW,EAAE;YACZ,sFAAsF;YACtF,UAAU,EAAE,kBAAS,CAAC,uBAAuB,CAAC,cAAc,CAAC;SAC7D;KACD,CAAC;IAEF,IAAI,IAAI,GAAY,kBAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxE,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,GAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;IACrC,QAAQ,QAAQ,EAAE;QACjB,KAAK,OAAO;YACX,OAAO,GAAG,OAAO,CAAC,cAAc,CAC/B,IAAI,CAAC,IAAI,CACR,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAC/B,SAAS,EACT,KAAK,EACL,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,yBAAyB,CACjD,CACD,CAAC;YACF,MAAM;QACP,KAAK,OAAO;YACX,OAAO,GAAG,OAAO,CAAC,cAAc,CAC/B,IAAI,CAAC,IAAI,CACR,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAC/B,OAAO,EACP,KAAK,EACL,IAAI,CAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CACxC,CACD,CAAC;YACF,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7B,MAAM;QACP,KAAK,QAAQ;YACZ,OAAO,GAAG,OAAO,CAAC,cAAc,CAC/B,IAAI,CAAC,IAAI,CACR,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAC/B,OAAO,EACP,KAAK,EACL,IAAI,CAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CACxC,CACD,CAAC;YACF,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7B,MAAM;KACP;IAED,IAAI,aAAa,GAAkB;QAClC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACL,IAAI;YACJ,IAAI;YACJ,QAAQ,GAAG,QAAQ,GAAG,GAAG;YACzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAC/B,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAC/B,UAAU,CACV,CAAC;SACF;KACD,CAAC;IAEF,MAAM,GAAG,IAAI,sCAAc,CAC1B,KAAK,EACL,KAAK,EACL,aAAa,EACb,aAAa,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAxED,4BAwEC;AAED,SAAgB,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QACZ,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AALD,gCAKC"} \ No newline at end of file diff --git a/client/package-lock.json b/client/package-lock.json deleted file mode 100644 index 7ab997bc..00000000 --- a/client/package-lock.json +++ /dev/null @@ -1,758 +0,0 @@ -{ - "name": "lsp-sample-client", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/node": { - "version": "8.10.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.59.tgz", - "integrity": "sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ==", - "dev": true - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.3.tgz", - "integrity": "sha512-Ytgnz23gm2DVftnzqRRz2dOXZbGd2uiajSw/95bPp6v53zPRspQjLm/AfBgqbJ2qfeRXWIOMVLpp86+/5yX39Q==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "requires": { - "mime-db": "1.40.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "psl": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", - "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vscode": { - "version": "1.1.36", - "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.36.tgz", - "integrity": "sha512-cGFh9jmGLcTapCpPCKvn8aG/j9zVQ+0x5hzYJq5h5YyUXVGa1iamOaB2M2PZXoumQPES4qeAP1FwkI0b6tL4bQ==", - "dev": true, - "requires": { - "glob": "^7.1.2", - "mocha": "^5.2.0", - "request": "^2.88.0", - "semver": "^5.4.1", - "source-map-support": "^0.5.0", - "url-parse": "^1.4.4", - "vscode-test": "^0.4.1" - } - }, - "vscode-jsonrpc": { - "version": "5.0.0-next.4", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.0-next.4.tgz", - "integrity": "sha512-Tos3tXP62ZTB9WowWwhvfVNdu1mEwQF/j7DqJuVL4QKhk311gH+mda0PZpG95LWyh5CCRpHMns4vNmMgZQrvXQ==" - }, - "vscode-languageclient": { - "version": "6.0.0-next.6", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.0.0-next.6.tgz", - "integrity": "sha512-Fd9dkQSgjVaSRXDFEMj4rGJEcTJ3sOzxb71wP2U91JJYr46rWxFLoxtZIfm7ABeajal69YUpo+5gHLLb5CCf9g==", - "requires": { - "semver": "^6.3.0", - "vscode-languageserver-protocol": "^3.15.0-next.11" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "vscode-languageserver-protocol": { - "version": "3.15.0-next.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.0-next.11.tgz", - "integrity": "sha512-tpRnPtyS6q0EYH5RH12AtdMecgu3HVL2bBdBGzeQRN8Tf93I9LY4Fl5TXUNkIBjuxjMshkCM8ikhb+hlnWvB2w==", - "requires": { - "vscode-jsonrpc": "^5.0.0-next.3", - "vscode-languageserver-types": "^3.15.0-next.7" - } - }, - "vscode-languageserver-types": { - "version": "3.15.0-next.8", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.8.tgz", - "integrity": "sha512-AEfWrSNyeamWMKPehh/kd3nBnKD9ZGCPhzfxMnW9YNqElSh28G2+Puk3knIQWyaWyV6Bzh28ok9BRJsPzXFCkQ==" - }, - "vscode-test": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz", - "integrity": "sha512-EkMGqBSefZH2MgW65nY05rdRSko15uvzq4VAPM5jVmwYuFQKE7eikKXNJDRxL+OITXHB6pI+a3XqqD32Y3KC5w==", - "dev": true, - "requires": { - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - } -} diff --git a/client/package.json b/client/package.json deleted file mode 100644 index b1fe645e..00000000 --- a/client/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "lsp-sample-client", - "description": "VSCode part of a language server", - "author": "Microsoft Corporation", - "license": "MIT", - "version": "0.0.1", - "publisher": "vscode", - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/vscode-extension-samples" - }, - "engines": { - "vscode": "^1.23.0" - }, - "scripts": { - "update-vscode": "vscode-install", - "postinstall": "vscode-install" - }, - "dependencies": { - "vscode-languageclient": "^6.0.0-next.6" - }, - "devDependencies": { - "@types/node": "^8.10.59", - "vscode": "^1.1.36" - } -} diff --git a/client/src/extension.ts b/client/src/extension.ts deleted file mode 100644 index a846fd17..00000000 --- a/client/src/extension.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* -------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - * ------------------------------------------------------------------------------------------ */ - -import * as path from 'path'; -import * as os from 'os'; -import * as fs from 'fs'; -import { workspace, ExtensionContext, env } from 'vscode'; - -import { - LanguageClient, - LanguageClientOptions, - ServerOptions, -} from 'vscode-languageclient'; - -let client: LanguageClient; - -export function activate(context: ExtensionContext) { - let language = env.language; - - // Options to control the language client - let clientOptions: LanguageClientOptions = { - // Register the server for plain text documents - documentSelector: [{ scheme: 'file', language: 'lua' }], - synchronize: { - // Notify the server about file changes to '.clientrc files contained in the workspace - fileEvents: workspace.createFileSystemWatcher('**/.clientrc') - } - }; - - let beta: boolean = workspace.getConfiguration("Lua.zzzzzz").get("cat"); - let command: string; - let platform: string = os.platform(); - switch (platform) { - case "win32": - command = context.asAbsolutePath( - path.join( - beta ? 'server-beta' : 'server', - 'Windows', - 'bin', - beta ? 'lua-beta.exe' : 'lua-language-server.exe' - ) - ); - break; - case "linux": - command = context.asAbsolutePath( - path.join( - beta ? 'server-beta' : 'server', - 'Linux', - 'bin', - beta? 'lua-beta' : 'lua-language-server' - ) - ); - fs.chmodSync(command, '777'); - break; - case "darwin": - command = context.asAbsolutePath( - path.join( - beta ? 'server-beta' : 'server', - 'macOS', - 'bin', - beta? 'lua-beta' : 'lua-language-server' - ) - ); - fs.chmodSync(command, '777'); - break; - } - - let serverOptions: ServerOptions = { - command: command, - args: [ - '-E', - '-e', - 'LANG="' + language + '"', - context.asAbsolutePath(path.join( - beta ? 'server-beta' : 'server', - 'main.lua' - )) - ] - }; - - client = new LanguageClient( - 'Lua', - 'Lua', - serverOptions, - clientOptions - ); - - client.start(); -} - -export function deactivate(): Thenable | undefined { - if (!client) { - return undefined; - } - return client.stop(); -} diff --git a/client/tsconfig.json b/client/tsconfig.json deleted file mode 100644 index 4a9daa33..00000000 --- a/client/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es6", - "outDir": "out", - "rootDir": "src", - "lib": ["es6"], - "sourceMap": true - }, - "include": ["src"], - "exclude": ["node_modules", ".vscode-test"] -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 27b1f9c7..00000000 --- a/package-lock.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "lua", - "version": "0.4.11", - "lockfileVersion": 1 -} diff --git a/package.json b/package.json deleted file mode 100644 index 0f8f5892..00000000 --- a/package.json +++ /dev/null @@ -1,412 +0,0 @@ -{ - "__metadata": { - "id": "3a15b5a7-be12-47e3-8445-88ee3eabc8b2", - "publisherDisplayName": "sumneko", - "publisherId": "fb626675-24cf-4881-8c13-b465f29bec2f" - }, - "activationEvents": [ - "onLanguage:lua" - ], - "author": "sumneko", - "categories": [ - "Linters", - "Programming Languages", - "Snippets" - ], - "contributes": { - "configuration": { - "properties": { - "Lua.completion.callSnippet": { - "default": "Disable", - "enum": [ - "Disable", - "Both", - "Replace" - ], - "markdownDescription": "%config.completion.callSnippet%", - "markdownEnumDescriptions": [ - "%config.completion.callSnippet.Disable%", - "%config.completion.callSnippet.Both%", - "%config.completion.callSnippet.Replace%" - ], - "scope": "resource", - "type": "string" - }, - "Lua.completion.enable": { - "default": true, - "markdownDescription": "%config.completion.enable%", - "scope": "resource", - "type": "boolean" - }, - "Lua.completion.keywordSnippet": { - "default": "Replace", - "enum": [ - "Disable", - "Both", - "Replace" - ], - "markdownDescription": "%config.completion.keywordSnippet%", - "markdownEnumDescriptions": [ - "%config.completion.keywordSnippet.Disable%", - "%config.completion.keywordSnippet.Both%", - "%config.completion.keywordSnippet.Replace%" - ], - "scope": "resource", - "type": "string" - }, - "Lua.diagnostics.disable": { - "items": { - "type": "string" - }, - "markdownDescription": "%config.diagnostics.disable%", - "scope": "resource", - "type": "array" - }, - "Lua.diagnostics.enable": { - "default": true, - "markdownDescription": "%config.diagnostics.enable%", - "scope": "resource", - "type": "boolean" - }, - "Lua.diagnostics.globals": { - "items": { - "type": "string" - }, - "markdownDescription": "%config.diagnostics.globals%", - "scope": "resource", - "type": "array" - }, - "Lua.diagnostics.severity": { - "markdownDescription": "%config.diagnostics.severity%", - "properties": { - "ambiguity-1": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "duplicate-index": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "duplicate-method": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "emmy-lua": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "empty-block": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "global-in-nil-env": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "lowercase-global": { - "default": "Information", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "newfield-call": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "newline-call": { - "default": "Information", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "redefined-local": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "redundant-parameter": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "redundant-value": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "set-const": { - "default": "Error", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "trailing-space": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "undefined-env-child": { - "default": "Information", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "undefined-global": { - "default": "Warning", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "unused-function": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "unused-label": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "unused-local": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - }, - "unused-vararg": { - "default": "Hint", - "enum": [ - "Error", - "Warning", - "Information", - "Hint" - ], - "scope": "resource", - "type": "string" - } - }, - "scope": "resource", - "title": "severity", - "type": "object" - }, - "Lua.runtime.path": { - "default": [ - "?.lua", - "?/init.lua", - "?/?.lua" - ], - "items": { - "type": "string" - }, - "markdownDescription": "%config.runtime.path%", - "scope": "resource", - "type": "array" - }, - "Lua.runtime.version": { - "default": "Lua 5.3", - "enum": [ - "Lua 5.1", - "Lua 5.2", - "Lua 5.3", - "Lua 5.4", - "LuaJIT" - ], - "markdownDescription": "%config.runtime.version%", - "scope": "resource", - "type": "string" - }, - "Lua.workspace.ignoreDir": { - "default": [ - ".vscode" - ], - "items": { - "type": "string" - }, - "markdownDescription": "%config.workspace.ignoreDir%", - "scope": "resource", - "type": "array" - }, - "Lua.workspace.ignoreSubmodules": { - "default": true, - "markdownDescription": "%config.workspace.ignoreSubmodules%", - "scope": "resource", - "type": "boolean" - }, - "Lua.workspace.library": { - "markdownDescription": "%config.workspace.library%", - "scope": "resource", - "type": "object" - }, - "Lua.workspace.maxPreload": { - "default": 300, - "markdownDescription": "%config.workspace.maxPreload%", - "scope": "resource", - "type": "integer" - }, - "Lua.workspace.preloadFileSize": { - "default": 100, - "markdownDescription": "%config.workspace.preloadFileSize%", - "scope": "resource", - "type": "integer" - }, - "Lua.workspace.useGitIgnore": { - "default": true, - "markdownDescription": "%config.workspace.useGitIgnore%", - "scope": "resource", - "type": "boolean" - }, - "Lua.zzzzzz.cat": { - "default": false, - "markdownDescription": "%config.zzzzzz.cat%", - "scope": "resource", - "type": "boolean" - } - }, - "title": "Lua", - "type": "object" - }, - "grammars": [ - { - "language": "lua", - "path": "./syntaxes/lua.tmLanguage.json", - "scopeName": "source.lua" - } - ] - }, - "description": "Lua Language Server coded by Lua", - "displayName": "Lua", - "engines": { - "vscode": "^1.23.0" - }, - "icon": "images/logo.png", - "keywords": [ - "Lua", - "LSP", - "GoTo Definition", - "IntelliSense" - ], - "license": "MIT", - "main": "./client/out/extension", - "name": "lua", - "publisher": "sumneko", - "repository": { - "type": "git", - "url": "https://github.com/sumneko/lua-language-server" - }, - "version": "0.14.2" -} \ No newline at end of file diff --git a/package.nls.json b/package.nls.json deleted file mode 100644 index aed98c27..00000000 --- a/package.nls.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "config.completion.callSnippet": "Shows function call snippets.", - "config.completion.callSnippet.Both": "Shows `function name` and `call snippet`.", - "config.completion.callSnippet.Disable": "Only shows `function name`.", - "config.completion.callSnippet.Replace": "Only shows `call snippet.`", - "config.completion.enable": "Enable completion.", - "config.completion.keywordSnippet": "Shows keyword syntax snippets.", - "config.completion.keywordSnippet.Both": "Shows `keyword` and `syntax snippet`.", - "config.completion.keywordSnippet.Disable": "Only shows `keyword`.", - "config.completion.keywordSnippet.Replace": "Only shows `syntax snippet`.", - "config.diagnostics.disable": "Disabled diagnostic (Use code in hover brackets).\n```json\n\"Lua.diagnostics.disable\" : [\n \"unused-local\",\n \"lowercase-global\"\n]\n```\n", - "config.diagnostics.enable": "Enable diagnostics.", - "config.diagnostics.globals": "Defined global variables.\n```json\n\"Lua.diagnostics.globals\" : [\n \"GLOBAL1\",\n \"GLOBAL2\"\n]\n```\n", - "config.diagnostics.severity": "Modified diagnostic severity.\n```json\n\"Lua.diagnostics.severity\" : {\n \"redefined-local\" : \"Warning\",\n \"emmy-lua\" : \"Hint\"\n}\n```\n", - "config.runtime.path": "`package.path`", - "config.runtime.version": "Lua runtime version.", - "config.workspace.ignoreDir": "Ignored directories (Use `.gitignore` grammar).\n```json\n\"Lua.workspace.ignoreDir\" : [\n \"temp/*.*\",\n \"!temp/*.lua\"\n]\n```\n", - "config.workspace.ignoreSubmodules": "Ignore submodules.", - "config.workspace.library": "Load external library.\nThis feature can load external Lua files, which can be used for definition, automatic completion and other functions. Note that the language server does not monitor changes in external files and needs to restart if the external files are modified.\nThe following example shows loaded files in `C:/lua` and `../lib` ,exclude `../lib/temp`.\n```json\n\"Lua.workspace.library\": {\n \"C:/lua\": true,\n \"../lib\": [\n \"temp/*\"\n ]\n}\n```\n", - "config.workspace.maxPreload": "Max preloaded files.", - "config.workspace.preloadFileSize": "Skip files larger than this value (KB) when preloading.", - "config.workspace.useGitIgnore": "Ignore files list in `.gitignore` .", - "config.zzzzzz.cat": "DO NOT TOUCH ME, LET ME SLEEP >_<\n\n(This will enable beta version, which are still in the early stages of development, and all features will fail after enabling this setting.)" -} \ No newline at end of file diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json deleted file mode 100644 index ece7b27a..00000000 --- a/package.nls.zh-cn.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "config.completion.callSnippet": "显示函数调用片段。", - "config.completion.callSnippet.Both": "显示 `函数名` 与 `调用片段`。", - "config.completion.callSnippet.Disable": "只显示 `函数名`。", - "config.completion.callSnippet.Replace": "只显示 `调用片段`。", - "config.completion.enable": "启用自动完成。", - "config.completion.keywordSnippet": "显示关键字语法片段", - "config.completion.keywordSnippet.Both": "显示 `关键字` 与 `语法片段`。", - "config.completion.keywordSnippet.Disable": "只显示 `关键字`。", - "config.completion.keywordSnippet.Replace": "只显示 `语法片段`。", - "config.diagnostics.disable": "禁用的诊断(使用浮框括号内的代码)。\n```json\n\"Lua.diagnostics.disable\" : [\n \"unused-local\",\n \"lowercase-global\"\n]\n```\n", - "config.diagnostics.enable": "启用诊断。", - "config.diagnostics.globals": "已定义的全局变量。\n```json\n\"Lua.diagnostics.globals\" : [\n \"GLOBAL1\",\n \"GLOBAL2\"\n]\n```\n", - "config.diagnostics.severity": "修改诊断等级。\n```json\n\"Lua.diagnostics.severity\" : {\n \"redefined-local\" : \"Warning\",\n \"emmy-lua\" : \"Hint\"\n}\n```\n", - "config.runtime.path": "`package.path`", - "config.runtime.version": "Lua运行版本。", - "config.workspace.ignoreDir": "忽略的目录(使用 `.gitignore` 语法)。\n```json\n\"Lua.workspace.ignoreDir\" : [\n \"temp/*.*\",\n \"!temp/*.lua\"\n]\n```\n", - "config.workspace.ignoreSubmodules": "忽略子模块。", - "config.workspace.library": "加载外部函数库。\n该功能可以加载外部的Lua文件,用于函数定义、自动完成等功能。注意,语言服务不会监视外部文件的变化,如果修改了外部文件需要重启。\n下面这个例子表示加载`C:/lua`与`../lib`中的所有文件,但不加载`../lib/temp`中的文件。\n```json\n\"Lua.workspace.library\": {\n \"C:/lua\": true,\n \"../lib\": [\n \"temp/*\"\n ]\n}\n```\n", - "config.workspace.maxPreload": "最大预加载文件数。", - "config.workspace.preloadFileSize": "预加载时跳过大小大于该值(KB)的文件。", - "config.workspace.useGitIgnore": "忽略 `.gitignore` 中列举的文件。", - "config.zzzzzz.cat": "DO NOT TOUCH ME, LET ME SLEEP >_<\n\n(这会启用还处于早期开发阶段的beta版,开启后所有的功能都会失效)" -} \ No newline at end of file diff --git a/syntaxes/lua.tmLanguage.json b/syntaxes/lua.tmLanguage.json deleted file mode 100644 index 4e2b2084..00000000 --- a/syntaxes/lua.tmLanguage.json +++ /dev/null @@ -1,319 +0,0 @@ -{ - "name": "Lua", - "scopeName": "source.lua", - "patterns": [ - { - "begin": "\\b(?:(local)\\s+)?(function)\\b", - "beginCaptures": { - "1": { - "name": "keyword.local.lua" - }, - "2": { - "name": "keyword.control.lua" - } - }, - "end": "(?=[\\)\\-:{}\\[\\]\"'])", - "name": "meta.function.lua", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.lua" - } - }, - "end": "(?=[\\)\\-\\.:{}\\[\\]\"'])", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.finish.lua" - } - }, - "name": "meta.parameter.lua", - "patterns": [ - { - "include": "#comment" - }, - { - "match": "[a-zA-Z_][a-zA-Z0-9_]*", - "name": "variable.parameter.function.lua" - }, - { - "match": ",", - "name": "punctuation.separator.arguments.lua" - } - ] - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=:)", - "name": "entity.name.class.lua" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "entity.name.function.lua" - } - ] - }, - { - "match": "(?", - "captures": { - "1": { - "name": "string.tag.lua" - } - } - }, - { - "match": "\\b(function)\\b", - "name": "keyword.control.lua" - }, - { - "match": "(?=?|(?