├── .editorconfig ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── package.json ├── spec └── main.spec.vue └── src └── main.js /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = tab 3 | indent_size = 4 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | build -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.1.9] 2 | - update package deps 3 | ## [0.1.8] 4 | - update package deps 5 | - removed unused deps 6 | ## [0.1.0] 7 | - initial release -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Ryan D. Watts 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IDE-Vue package 2 | 3 | Vue language support for Atom-IDE, powered by [Vue Language Server](https://www.npmjs.com/package/vue-language-server). 4 | 5 | ## Companion Packages 6 | This package is currently a *Work in Progress*. You should also install: 7 | 8 | 1. The **atom-ide-ui** package to expose the functionality within Atom 9 | 2. The **language-vue** package to ensure highlighting and activation within Vue files 10 | 11 | ## Development 12 | 1. Clone this repo `$ git clone https://github.com/rwatts3/atom-ide-vue ` 13 | 2. cd to the repos directory `$ cd ` 14 | 3. Install Deps `$ npm i` 15 | 4. Start the app in dev mode. `$ npm run dev` 16 | 17 | ## License 18 | MIT License. See [the license](LICENSE.md) for more details. 19 | 20 | > This package was [`Made By Ryan Watts`](https://www.ryanwatts.me) -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ide-vue", 3 | "main": "./src/main", 4 | "version": "0.1.10", 5 | "description": "Vue language support for Atom-IDE.", 6 | "repository": "https://github.com/rwatts3/atom-ide-vue", 7 | "license": "MIT", 8 | "engines": { 9 | "atom": ">=1.19.0" 10 | }, 11 | "configSchema": { 12 | "additionalGrammars": { 13 | "type": "array", 14 | "title": "Register Additional Grammars", 15 | "default": [], 16 | "description": "Register additional grammars" 17 | } 18 | }, 19 | "keywords": [ 20 | "atom-ide", 21 | "vue", 22 | "lsp", 23 | "language-client" 24 | ], 25 | "author": { 26 | "name": "Ryan Watts", 27 | "url": "https://github.com/rwatts3", 28 | "email": "ryandwatts@gmail.com" 29 | }, 30 | "scripts": {}, 31 | "dependencies": { 32 | "atom-languageclient": "^0.9.5", 33 | "vue-language-server": "^0.0.31" 34 | }, 35 | "devDependencies": { 36 | "@types/atom": "1.27.0", 37 | "@types/node": "^10.3.0" 38 | }, 39 | "enhancedScopes": [], 40 | "consumedServices": { 41 | "linter-indie": { 42 | "versions": { 43 | "2.0.0": "consumeLinterV2" 44 | } 45 | }, 46 | "datatip": { 47 | "versions": { 48 | "0.1.0": "consumeDatatip" 49 | } 50 | } 51 | }, 52 | "providedServices": { 53 | "autocomplete.provider": { 54 | "versions": { 55 | "2.0.0": "provideAutocomplete" 56 | } 57 | }, 58 | "definitions": { 59 | "versions": { 60 | "0.1.0": "provideDefinitions" 61 | } 62 | }, 63 | "find-references": { 64 | "versions": { 65 | "0.1.0": "provideFindReferences" 66 | } 67 | }, 68 | "outline-view": { 69 | "versions": { 70 | "0.1.0": "provideOutlines" 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /spec/main.spec.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const { AutoLanguageClient } = require('atom-languageclient'); 3 | 4 | class VueLanguageClient extends AutoLanguageClient { 5 | getGrammarScopes () { return atom.config.get('ide-vue.additionalGrammars').concat(['text.html.vue']); }; 6 | getLanguageName () { return 'Vue' }; 7 | getServerName () { return 'Vetur' }; 8 | 9 | startServerProcess () { 10 | const args = ['node_modules/vue-language-server/dist/vueServerMain']; 11 | return super.spawnChildNode(args, { cwd : path.join(__dirname, '..') }); 12 | }; 13 | 14 | preInitialization (connection) { 15 | connection.onCustom('$/partialResult', () => {}); // Suppress partialResult until the language server honours 'streaming' detection 16 | } 17 | } 18 | 19 | module.exports = new VueLanguageClient(); 20 | --------------------------------------------------------------------------------