From 6e678863e924449cfcbfe262c79b516e68fb8723 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Tue, 13 Feb 2018 11:12:13 -0800 Subject: [PATCH] Create vscode-boot extension This will become the 'merged' vscode-boot-java + vscode-boot-propertues extension. --- vscode-extensions/vscode-boot/.gitignore | 17 + .../vscode-boot/.vscode/launch.json | 31 + .../vscode-boot/.vscode/settings.json | 12 + .../vscode-boot/.vscode/tasks.json | 30 + vscode-extensions/vscode-boot/.vscodeignore | 30 + .../vscode-boot/DEVELOPER-NOTES.md | 60 + vscode-extensions/vscode-boot/README.md | 58 + vscode-extensions/vscode-boot/lib/.gitignore | 1 + vscode-extensions/vscode-boot/lib/Main.ts | 32 + vscode-extensions/vscode-boot/package.json | 91 ++ .../properties-support/OSSREADME.json | 13 + .../java-properties.tmLanguage | 160 +++ .../language-configuration.json | 21 + .../readme-imgs/properties-completion.png | Bin 0 -> 41232 bytes .../readme-imgs/properties-validation.png | Bin 0 -> 10653 bytes .../readme-imgs/yaml-completion.png | Bin 0 -> 50014 bytes .../vscode-boot/readme-imgs/yaml-hover.png | Bin 0 -> 52452 bytes .../readme-imgs/yaml-validation.png | Bin 0 -> 9146 bytes .../vscode-boot/scripts/preinstall.sh | 20 + .../vscode-boot/spring-boot-logo.png | Bin 0 -> 5897 bytes vscode-extensions/vscode-boot/tsconfig.json | 21 + .../vscode-boot/yaml-support/OSSREADME.json | 28 + .../yaml-support/language-configuration.json | 24 + .../vscode-boot/yaml-support/yaml.tmLanguage | 1164 +++++++++++++++++ 24 files changed, 1813 insertions(+) create mode 100644 vscode-extensions/vscode-boot/.gitignore create mode 100644 vscode-extensions/vscode-boot/.vscode/launch.json create mode 100644 vscode-extensions/vscode-boot/.vscode/settings.json create mode 100644 vscode-extensions/vscode-boot/.vscode/tasks.json create mode 100644 vscode-extensions/vscode-boot/.vscodeignore create mode 100644 vscode-extensions/vscode-boot/DEVELOPER-NOTES.md create mode 100644 vscode-extensions/vscode-boot/README.md create mode 100644 vscode-extensions/vscode-boot/lib/.gitignore create mode 100644 vscode-extensions/vscode-boot/lib/Main.ts create mode 100644 vscode-extensions/vscode-boot/package.json create mode 100644 vscode-extensions/vscode-boot/properties-support/OSSREADME.json create mode 100644 vscode-extensions/vscode-boot/properties-support/java-properties.tmLanguage create mode 100644 vscode-extensions/vscode-boot/properties-support/language-configuration.json create mode 100644 vscode-extensions/vscode-boot/readme-imgs/properties-completion.png create mode 100644 vscode-extensions/vscode-boot/readme-imgs/properties-validation.png create mode 100644 vscode-extensions/vscode-boot/readme-imgs/yaml-completion.png create mode 100644 vscode-extensions/vscode-boot/readme-imgs/yaml-hover.png create mode 100644 vscode-extensions/vscode-boot/readme-imgs/yaml-validation.png create mode 100755 vscode-extensions/vscode-boot/scripts/preinstall.sh create mode 100644 vscode-extensions/vscode-boot/spring-boot-logo.png create mode 100644 vscode-extensions/vscode-boot/tsconfig.json create mode 100644 vscode-extensions/vscode-boot/yaml-support/OSSREADME.json create mode 100644 vscode-extensions/vscode-boot/yaml-support/language-configuration.json create mode 100644 vscode-extensions/vscode-boot/yaml-support/yaml.tmLanguage diff --git a/vscode-extensions/vscode-boot/.gitignore b/vscode-extensions/vscode-boot/.gitignore new file mode 100644 index 000000000..e0fd3a462 --- /dev/null +++ b/vscode-extensions/vscode-boot/.gitignore @@ -0,0 +1,17 @@ +out +node_modules +target +*.log +*.log.* +classpath.txt +*.vsix +repo +.idea +*.iml +.DS_Store +**/.DS_Store +src/test/resources/test-projects/**/.classpath +src/test/resources/test-projects/**/.project +src/test/resources/test-projects/**/.factorypath +src/test/resources/test-projects/**/.settings/** +src/test/resources/test-projects/**/bin/** \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/.vscode/launch.json b/vscode-extensions/vscode-boot/.vscode/launch.json new file mode 100644 index 000000000..07e1c6011 --- /dev/null +++ b/vscode-extensions/vscode-boot/.vscode/launch.json @@ -0,0 +1,31 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +{ + "version": "0.1.0", + "configurations": [ + { + "type": "extensionHost", + "request": "launch", + "name": "Launch Extension", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceRoot}" + ], + "sourceMaps": true, + "outFiles": [ + "${workspaceRoot}/out/**/*.js" + ], + "preLaunchTask": "npm" + }, + { + "name": "Launch Tests", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ], + "stopOnEntry": false, + "sourceMaps": true, + "outDir": "${workspaceRoot}/out/test", + "preLaunchTask": "npm" + } + ] +} diff --git a/vscode-extensions/vscode-boot/.vscode/settings.json b/vscode-extensions/vscode-boot/.vscode/settings.json new file mode 100644 index 000000000..c5592bee9 --- /dev/null +++ b/vscode-extensions/vscode-boot/.vscode/settings.json @@ -0,0 +1,12 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "out": true, // set this to true to hide the "out" folder with the compiled JS files + "node_modules": false, + "target": true + }, + "search.exclude": { + "out": true // set this to false to include "out" folder in search results + }, + "typescript.tsdk": "./node_modules/typescript/lib" // we want to use the TS server from our node_modules folder to control its version +} \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/.vscode/tasks.json b/vscode-extensions/vscode-boot/.vscode/tasks.json new file mode 100644 index 000000000..1cbb9fd45 --- /dev/null +++ b/vscode-extensions/vscode-boot/.vscode/tasks.json @@ -0,0 +1,30 @@ +// Available variables which can be used inside of strings. +// ${workspaceRoot}: the root folder of the team +// ${file}: the current opened file +// ${fileBasename}: the current opened file's basename +// ${fileDirname}: the current opened file's dirname +// ${fileExtname}: the current opened file's extension +// ${cwd}: the current working directory of the spawned process + +// A task runner that calls a custom npm script that compiles the extension. +{ + "version": "0.1.0", + + // we want to run npm + "command": "npm", + + // the command is a shell script + "isShellCommand": true, + + // show the output window only if unrecognized errors occur. + "showOutput": "silent", + + // we run the custom script "compile" as defined in package.json + "args": ["run", "compile"], //, "--loglevel", "silent"], + + // The tsc compiler is started in watching mode + "isWatching": true, + + // use the standard tsc in watch mode problem matcher to find compile problems in the output. + "problemMatcher": "$tsc-watch" +} \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/.vscodeignore b/vscode-extensions/vscode-boot/.vscodeignore new file mode 100644 index 000000000..37a538825 --- /dev/null +++ b/vscode-extensions/vscode-boot/.vscodeignore @@ -0,0 +1,30 @@ +# IDE configs +.vscode/** +.idea/** +*.iml +javaconfig.json +classpath.txt +tsconfig.json +tsd.json +*.xml + +# Logs +*.log* + +# Sources +typings/** +src/** +test/** +lib/** +!lib/javaconfig.schema.json +repo/** +scripts/** + +# Compiler output +out/test/** +target/** +!target/vscode-boot-properties-*.jar + +# Extensions +.gitignore +**/*.map diff --git a/vscode-extensions/vscode-boot/DEVELOPER-NOTES.md b/vscode-extensions/vscode-boot/DEVELOPER-NOTES.md new file mode 100644 index 000000000..cf924f168 --- /dev/null +++ b/vscode-extensions/vscode-boot/DEVELOPER-NOTES.md @@ -0,0 +1,60 @@ +# Developer notes + +## Bulding and Running + +This project consists of three pieces: + + - a vscode-extension which is a language-server client implemented in TypeScript. + - commons-vscode: a local npm module with some utilities implemented in TypeScript. + - a language server implemented in Java. + +To build all these pieces you normally only need to run: + + npm install + +**However, the first time you build** it might fail trying to +find the `commons-vscode` module on npm central. Once we publish a stable +version of that module on npm central that will no longer be a problem. +Until that time, you can work around this by doing a one time manual +run of the `preinstall` script prior to running `npm install`: + + ./scripts/preinstall.sh + npm install + +Now you can open the client-app in vscode. From the root of this project. + + code . + +To launch the language server in a vscode runtime, press F5. + +## Debugging + +### Method 1: attach remote debugger to Language Server + +To debug the language server, open `lib/Main.ts` and edit to set the +`DEBUG` option to `true`. When you launch the app next by pressing +`F5` it will launch with debug options being passed to the server JVM. + +You can then connect a 'Remote Java' debugger on port 8000. + +### Method 2: Launch a 'standalone' Language Server + +To debug the language server, open `lib/Main.ts` and edit to set the +`CONNECT_TO_LS` option to `true`. When you launch the app next by pressing +`F5`... When it needs a language server it not launch a process but instead +try to connect to an already running server on port `5007`. It is up to you +to ensure a server is running on that port by launching it beforehand +with a commandline arguments: `-Dstandalone-startup=true`. + +## Packaging as a vscode extension + +First make sure the stuff is all built locally: + + ./scripts/preinstall.sh # only needed if this is the first build. + npm install + +Then package it: + + npm run vsce-package + +This produces a `.vsix` file which you can install directly into vscode. \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/README.md b/vscode-extensions/vscode-boot/README.md new file mode 100644 index 000000000..169f5a8c6 --- /dev/null +++ b/vscode-extensions/vscode-boot/README.md @@ -0,0 +1,58 @@ +# VS Code Language Server for Spring Boot Application Properties + +VSCode extension and Language Server providing support for working with Spring Boot +`application.properties` and `application.yml` files. + +# Usage: + +The extension will automatically activate when you edit files with the following +name patterns: + + - `application*.properties` => activates support for Spring Boot properties in `.properties`format. + - `application*.yml` => activates support for Spring Boot properties in `.yml` format. + +You can also define your own patterns and map them to the language-ids +`spring-boot-properties` or `spring-boot-properties-yaml` by defining `files.associations` +in workspace settings. See [vscode documentation](https://code.visualstudio.com/Docs/languages/overview#_adding-a-file-extension-to-a-language) for details. + +# Functionality + +This extension analyzes your project's classpath and parses and indexes any [Spring Boot +Properties Metadata](https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html) it finds. Both Maven and Gradle projects are supported. + +The data in the index is used to provide validation, code completions and information +hovers while editing Spring Boot Properties in either `.properties` or `.yml` format. + +## Validation + +![application-yaml-validation][yaml-validation] +![application-properties-validation][properties-validation] + +## Code Completions + +![application-yaml-completions][yaml-completion] + +![application-properties-completions][properties-completion] + +## Information Hovers + +![application-yaml-hovers][yaml-hovers] + +## Issues and Feature Requests + +Please report bugs, issues and feature requests on the [Github STS4 issue tracker](https://github.com/spring-projects/sts4/issues). + +# Releases: + +Released versions of this extension can be installed directly from the vscode marketplace. + +There are also development snapshots available with the latest fixes and improvements as a `.vsix` file +that can be donwloaded from +[here](http://dist.springsource.com/snapshot/STS4/nightly-distributions.html). To install it +open vscode, press `CTRL-SHIFT-P` and search for VSIX, then select `Extension: Install from VSIX` + +[yaml-completion]: https://github.com/spring-projects/sts4/raw/5360ae4fabf9245da58f5897c54e9a14786d0622/vscode-extensions/vscode-boot-properties/readme-imgs/yaml-completion.png +[properties-completion]: https://github.com/spring-projects/sts4/raw/5360ae4fabf9245da58f5897c54e9a14786d0622/vscode-extensions/vscode-boot-properties/readme-imgs/properties-completion.png +[yaml-validation]: https://github.com/spring-projects/sts4/raw/5360ae4fabf9245da58f5897c54e9a14786d0622/vscode-extensions/vscode-boot-properties/readme-imgs/yaml-validation.png +[properties-validation]: https://github.com/spring-projects/sts4/raw/5360ae4fabf9245da58f5897c54e9a14786d0622/vscode-extensions/vscode-boot-properties/readme-imgs/properties-validation.png +[yaml-hovers]: https://github.com/spring-projects/sts4/raw/1d731ed1ad5c8defcca4e4abb3cf5f2d89daba43/vscode-extensions/vscode-boot-properties/readme-imgs/yaml-hover.png diff --git a/vscode-extensions/vscode-boot/lib/.gitignore b/vscode-extensions/vscode-boot/lib/.gitignore new file mode 100644 index 000000000..a6c7c2852 --- /dev/null +++ b/vscode-extensions/vscode-boot/lib/.gitignore @@ -0,0 +1 @@ +*.js diff --git a/vscode-extensions/vscode-boot/lib/Main.ts b/vscode-extensions/vscode-boot/lib/Main.ts new file mode 100644 index 000000000..3a2988ade --- /dev/null +++ b/vscode-extensions/vscode-boot/lib/Main.ts @@ -0,0 +1,32 @@ +'use strict'; +// The module 'vscode' contains the VS Code extensibility API +// Import the module and reference it with the alias vscode in your code below + +import * as VSCode from 'vscode'; +import * as Path from 'path'; +import * as FS from 'fs'; +import * as Net from 'net'; +import * as ChildProcess from 'child_process'; +import {LanguageClient, LanguageClientOptions, SettingMonitor, ServerOptions, StreamInfo} from 'vscode-languageclient'; +import {TextDocument} from 'vscode'; + +import * as commons from 'commons-vscode'; + +const PROPERTIES_LANGUAGE_ID = "spring-boot-properties"; +const YAML_LANGUAGE_ID = "spring-boot-properties-yaml"; +const JAVA_LANGUAGE_ID = "java"; + +/** Called when extension is activated */ +export function activate(context: VSCode.ExtensionContext) { + let options : commons.ActivatorOptions = { + DEBUG: false, + CONNECT_TO_LS: false, + extensionId: 'vscode-boot', + launcher: (context: VSCode.ExtensionContext) => Path.resolve(context.extensionPath, 'jars/language-server.jar'), + jvmHeap: "160m", + clientOptions: { + documentSelector: [ PROPERTIES_LANGUAGE_ID, YAML_LANGUAGE_ID, JAVA_LANGUAGE_ID ] + } + }; + let clientPromise = commons.activate(options, context); +} diff --git a/vscode-extensions/vscode-boot/package.json b/vscode-extensions/vscode-boot/package.json new file mode 100644 index 000000000..cd75951fd --- /dev/null +++ b/vscode-extensions/vscode-boot/package.json @@ -0,0 +1,91 @@ +{ + "name": "vscode-boot", + "displayName": "Spring Boot Support", + "description": "Provides validation and content assist for Spring Boot `application.properties`, `application.yml` properties files. As well as Boot-specific support for `.java` files.", + "icon": "spring-boot-logo.png", + "version": "0.1.4", + "publisher": "Pivotal", + "repository": { + "type": "git", + "url": "https://github.com/spring-projects/sts4.git" + }, + "license": "EPL-1.0", + "engines": { + "npm": "^3.0.0", + "vscode": "^1.19.0" + }, + "categories": [ + "Languages", + "Linters" + ], + "keywords": [ + "java-properties", + "spring-boot", + "java", + "application-properties", + "application-yaml" + ], + "activationEvents": [ + "onLanguage:spring-boot-properties", + "onLanguage:spring-boot-properties-yaml", + "onLanguage:java" + ], + "contributes": { + "languages": [ + { + "id": "spring-boot-properties-yaml", + "aliases": [ + "Spring Boot Properties Yaml" + ], + "filenamePatterns": [ + "application*.yml", + "bootstrap*.yml" + ], + "configuration": "./yaml-support/language-configuration.json" + }, + { + "id": "spring-boot-properties", + "aliases": [ + "Spring Boot Properties" + ], + "filenamePatterns": [ + "application*.properties", + "bootstrap*.yml" + ], + "configuration": "./properties-support/language-configuration.json" + } + ], + "grammars": [ + { + "language": "spring-boot-properties-yaml", + "scopeName": "source.yaml", + "path": "./yaml-support/yaml.tmLanguage" + }, + { + "language": "spring-boot-properties", + "scopeName": "source.java-properties", + "path": "./properties-support/java-properties.tmLanguage" + } + ] + }, + "main": "./out/lib/Main", + "scripts": { + "vscode:prepublish": "npm run compile", + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./", + "clean": "rm -fr node_modules out *.vsix package-lock.json", + "preinstall": "./scripts/preinstall.sh", + "postinstall": "node ./node_modules/vscode/bin/install", + "vsce-package": "vsce package" + }, + "dependencies": { + "commons-vscode": "file:../commons-vscode/commons-vscode-0.1.4.tgz", + "vscode-languageclient": "^3.4.2" + }, + "devDependencies": { + "vsce": "^1.36.1", + "typescript": "2.6.1", + "@types/node": "^7.0.43", + "vscode": "^1.1.10" + } +} diff --git a/vscode-extensions/vscode-boot/properties-support/OSSREADME.json b/vscode-extensions/vscode-boot/properties-support/OSSREADME.json new file mode 100644 index 000000000..c1ebef0ea --- /dev/null +++ b/vscode-extensions/vscode-boot/properties-support/OSSREADME.json @@ -0,0 +1,13 @@ +// ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: + +[{ + "name": "textmate/java.tmbundle", + "version": "0.0.0", + "repositoryURL": "https://github.com/textmate/java.tmbundle/blob/master/Syntaxes/JavaProperties.plist", + "licenseDetail": [ + "Permission to copy, use, modify, sell and distribute this", + "software is granted. This software is provided \"as is\" without", + "express or implied warranty, and with no claim as to its", + "suitability for any purpose." + ] +}] diff --git a/vscode-extensions/vscode-boot/properties-support/java-properties.tmLanguage b/vscode-extensions/vscode-boot/properties-support/java-properties.tmLanguage new file mode 100644 index 000000000..bf25ce875 --- /dev/null +++ b/vscode-extensions/vscode-boot/properties-support/java-properties.tmLanguage @@ -0,0 +1,160 @@ + + + + + fileTypes + + properties + + foldingStartMarker + ^[a-zA-Z0-9.-_]+=.*\ + + foldingStopMarker + ^(.*(?<!\) +) + keyEquivalent + ^~J + name + Java Properties + patterns + + + comment + Ignore blank lines + match + ^\s*$ + + + include + #comment-line + + + include + #property-name + + + include + #property-definition + + + repository + + comment-line + + captures + + 1 + + name + punctuation.whitespace.comment.leading.java-properties + + 2 + + name + punctuation.definition.comment.java-properties + + + match + ^(\s*)([#!])(.+)?$\n? + name + comment.line.java-properties + + property-definition + + begin + ^(\s*)((?:\\[ \t]|\\:|\\=|[^:=\s])+)(?:\s*([:=]))?\s* + beginCaptures + + 1 + + name + punctuation.whitespace.leading.java-properties + + 2 + + name + support.constant.java-properties + patterns + + + match + \\(?:[ \t:=\\ntfr\"']|u[0-9A-Fa-f]{4}) + name + constant.character.escape.java-properties + + + + 3 + + name + punctuation.separator.key-value.java-properties + + + contentName + string.unquoted.java-properties + end + (?<!\\{1})$\n + name + meta.key-value.java-properties + patterns + + + comment + Leading space on a continued line is ignored + match + ^\s* + name + punctuation.whitespace.leading.java-properties + + + match + (\\{1})(?=$\n) + name + punctuation.separator.continuation.java-properties + + + match + \\(?:[\\ntfr\"']|u[0-9A-Fa-f]{4}) + name + constant.character.escape.java-properties + + + + property-name + + captures + + 1 + + name + punctuation.whitespace.comment.leading.java-properties + + 2 + + name + support.constant.java-properties + patterns + + + match + \\(?:[ \t:=\\ntfr\"']|u[0-9A-Fa-f]{4}) + name + constant.character.escape.java-properties + + + + + comment + A property name with no value + match + ^(\s*)((?:\\[ \t]|\\:|\\=|[^:=\s])+)(?:\s*([:=]))?\s*$\n + name + meta.key-value.java-properties + + + scopeName + source.java-properties + uuid + D364E829-7643-4AFF-948D-3C0D6B4EA8A4 + + diff --git a/vscode-extensions/vscode-boot/properties-support/language-configuration.json b/vscode-extensions/vscode-boot/properties-support/language-configuration.json new file mode 100644 index 000000000..053f8fee2 --- /dev/null +++ b/vscode-extensions/vscode-boot/properties-support/language-configuration.json @@ -0,0 +1,21 @@ +{ + "comments": { + "lineComment": "#" + }, + "brackets": [ + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ] +} \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/readme-imgs/properties-completion.png b/vscode-extensions/vscode-boot/readme-imgs/properties-completion.png new file mode 100644 index 0000000000000000000000000000000000000000..12e591f1a83f3dbb3b27deac9a1ec43464d3e6e1 GIT binary patch literal 41232 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 literal 0 HcmV?d00001 diff --git a/vscode-extensions/vscode-boot/readme-imgs/properties-validation.png b/vscode-extensions/vscode-boot/readme-imgs/properties-validation.png new file mode 100644 index 0000000000000000000000000000000000000000..92949cd6ab7b2f351f088d667d85cc3646e2974e GIT binary patch literal 10653 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

wD7i=i(j^&cHS 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 IxO(sZ0Qq*XQUCw| literal 0 HcmV?d00001 diff --git a/vscode-extensions/vscode-boot/readme-imgs/yaml-validation.png b/vscode-extensions/vscode-boot/readme-imgs/yaml-validation.png new file mode 100644 index 0000000000000000000000000000000000000000..8135c703b2291c091dbf9b8f5ce8e5c80d69f652 GIT binary patch literal 9146 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 literal 0 HcmV?d00001 diff --git a/vscode-extensions/vscode-boot/scripts/preinstall.sh b/vscode-extensions/vscode-boot/scripts/preinstall.sh new file mode 100755 index 000000000..4d2e09b1d --- /dev/null +++ b/vscode-extensions/vscode-boot/scripts/preinstall.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e + +workdir=`pwd` + +# Preinstall commons-vscode package +(cd ../commons-vscode ; npm install ; npm pack) +npm install ../commons-vscode/commons-vscode-*.tgz + +# Copy grammar files for .properties and .yml format +curl https://raw.githubusercontent.com/textmate/yaml.tmbundle/master/Syntaxes/YAML.tmLanguage > yaml-support/yaml.tmLanguage +curl https://raw.githubusercontent.com/textmate/java.tmbundle/master/Syntaxes/JavaProperties.plist > properties-support/java-properties.tmLanguage + +# Use maven to build fat jar of the language server +cd ../../headless-services/boot-language-server +./build.sh + +mkdir -p ${workdir}/jars +cp target/*.jar ${workdir}/jars/language-server.jar + diff --git a/vscode-extensions/vscode-boot/spring-boot-logo.png b/vscode-extensions/vscode-boot/spring-boot-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ccdef63a2dc50dd3215399d80fcacff1c4a1b75 GIT binary patch literal 5897 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 ZI`^R1#mdozpX^M1>O)HN%)&yv(5d3 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 literal 0 HcmV?d00001 diff --git a/vscode-extensions/vscode-boot/tsconfig.json b/vscode-extensions/vscode-boot/tsconfig.json new file mode 100644 index 000000000..1905ffea7 --- /dev/null +++ b/vscode-extensions/vscode-boot/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "moduleResolution": "node", + "target": "es6", + "lib": [ + "es6" + ], + "declaration": true, + "outDir": "out", + "sourceMap": true, + "rootDir": "." + }, + "include": [ + "typings/*.d.ts", + "lib/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/yaml-support/OSSREADME.json b/vscode-extensions/vscode-boot/yaml-support/OSSREADME.json new file mode 100644 index 000000000..bcdae2a4c --- /dev/null +++ b/vscode-extensions/vscode-boot/yaml-support/OSSREADME.json @@ -0,0 +1,28 @@ +// ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: + +[{ + "name": "textmate/yaml.tmbundle", + "version": "0.0.0", + "license": "TextMate Bundle License", + "repositoryURL": "https://github.com/textmate/yaml.tmbundle", + "licenseDetail": [ + "Copyright (c) 2015 FichteFoll ", + "", + "Permission is hereby granted, free of charge, to any person obtaining a copy", + "of this software and associated documentation files (the \"Software\"), to deal", + "in the Software without restriction, including without limitation the rights", + "to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", + "copies of the Software, and to permit persons to whom the Software is", + "furnished to do so, subject to the following conditions:", + "", + "The above copyright notice and this permission notice shall be included in all", + "copies or substantial portions of the Software.", + "", + "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", + "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", + "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", + "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", + "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", + "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." + ] +}] diff --git a/vscode-extensions/vscode-boot/yaml-support/language-configuration.json b/vscode-extensions/vscode-boot/yaml-support/language-configuration.json new file mode 100644 index 000000000..cab4f6602 --- /dev/null +++ b/vscode-extensions/vscode-boot/yaml-support/language-configuration.json @@ -0,0 +1,24 @@ +{ + "comments": { + "lineComment": "#" + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ] +} \ No newline at end of file diff --git a/vscode-extensions/vscode-boot/yaml-support/yaml.tmLanguage b/vscode-extensions/vscode-boot/yaml-support/yaml.tmLanguage new file mode 100644 index 000000000..efc4c8ab0 --- /dev/null +++ b/vscode-extensions/vscode-boot/yaml-support/yaml.tmLanguage @@ -0,0 +1,1164 @@ + + + + + fileTypes + + yaml + yml + rviz + reek + clang-format + yaml-tmlanguage + syntax + sublime-syntax + + firstLineMatch + ^%YAML( ?1.\d+)? + keyEquivalent + ^~Y + name + YAML + patterns + + + include + #comment + + + include + #property + + + include + #directive + + + match + ^--- + name + entity.other.document.begin.yaml + + + match + ^\.{3} + name + entity.other.document.end.yaml + + + include + #node + + + repository + + block-collection + + patterns + + + include + #block-sequence + + + include + #block-mapping + + + + block-mapping + + patterns + + + include + #block-pair + + + + block-node + + patterns + + + include + #prototype + + + include + #block-scalar + + + include + #block-collection + + + include + #flow-scalar-plain-out + + + include + #flow-node + + + + block-pair + + patterns + + + begin + \? + beginCaptures + + 1 + + name + punctuation.definition.key-value.begin.yaml + + + end + (?=\?)|^ *(:)|(:) + endCaptures + + 1 + + name + punctuation.separator.key-value.mapping.yaml + + 2 + + name + invalid.illegal.expected-newline.yaml + + + name + meta.block-mapping.yaml + patterns + + + include + #block-node + + + + + begin + (?x) + (?= + (?x: + [^\s[-?:,\[\]{}#&*!|>'"%@`]] + | [?:-] \S + ) + ( + [^\s:] + | : \S + | \s+ (?![#\s]) + )* + \s* + : + (\s|$) + ) + + end + (?x) + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + ) + + patterns + + + include + #flow-scalar-plain-out-implicit-type + + + begin + (?x) + [^\s[-?:,\[\]{}#&*!|>'"%@`]] + | [?:-] \S + + beginCaptures + + 0 + + name + entity.name.tag.yaml + + + contentName + entity.name.tag.yaml + end + (?x) + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + ) + + name + string.unquoted.plain.out.yaml + + + + + match + :(?=\s|$) + name + punctuation.separator.key-value.mapping.yaml + + + + block-scalar + + begin + (?:(\|)|(>))([1-9])?([-+])?(.*\n?) + beginCaptures + + 1 + + name + punctuation.definition.block.scalar.literal.yaml + + 2 + + name + punctuation.definition.block.scalar.folded.yaml + + 3 + + name + constant.numeric.indentation-indicator.yaml + + 4 + + name + support.other.chomping-indicator.yaml + + 5 + + patterns + + + include + #comment + + + match + .+ + name + invalid.illegal.expected-comment-or-newline.yaml + + + + + end + ^(?=\S)|(?!\G) + patterns + + + begin + ^([ ]+)(?! ) + end + ^(?!\1|\s*$) + name + string.unquoted.block.yaml + + + + block-sequence + + match + (-)( |\t|$) + name + punctuation.definition.block.sequence.item.yaml + + comment + + begin + (?:(^[ \t]*)|[ \t]+)(?=#\p{Print}*$) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.yaml + + + end + (?!\G) + patterns + + + begin + # + beginCaptures + + 0 + + name + punctuation.definition.comment.yaml + + + end + \n + name + comment.line.number-sign.yaml + + + + directive + + begin + ^% + beginCaptures + + 0 + + name + punctuation.definition.directive.begin.yaml + + + end + (?=$|[ \t]+($|#)) + name + meta.directive.yaml + patterns + + + captures + + 1 + + name + keyword.other.directive.yaml.yaml + + 2 + + name + constant.numeric.yaml-version.yaml + + + match + \G(YAML)[ \t]+(\d+\.\d+) + + + captures + + 1 + + name + keyword.other.directive.tag.yaml + + 2 + + name + storage.type.tag-handle.yaml + + 3 + + name + support.type.tag-prefix.yaml + + + match + (?x) + \G + (TAG) + (?:[ \t]+ + ((?:!(?:[0-9A-Za-z\-]*!)?)) + (?:[ \t]+ ( + ! (?x: %\p{XDigit}{2} | [0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]] )* + | (?![,!\[\]{}]) (?x: %\p{XDigit}{2} | [0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]] )+ + ) + )? + )? + + + + captures + + 1 + + name + support.other.directive.reserved.yaml + + 2 + + name + string.unquoted.directive-name.yaml + + 3 + + name + string.unquoted.directive-parameter.yaml + + + match + (?x) \G (\w+) (?:[ \t]+ (\w+) (?:[ \t]+ (\w+))? )? + + + match + \S+ + name + invalid.illegal.unrecognized.yaml + + + + flow-alias + + captures + + 1 + + name + keyword.control.flow.alias.yaml + + 2 + + name + punctuation.definition.alias.yaml + + 3 + + name + variable.other.alias.yaml + + 4 + + name + invalid.illegal.character.anchor.yaml + + + match + ((\*))([^\s\[\]/{/},]+)([^\s\]},]\S*)? + + flow-collection + + patterns + + + include + #flow-sequence + + + include + #flow-mapping + + + + flow-mapping + + begin + \{ + beginCaptures + + 0 + + name + punctuation.definition.mapping.begin.yaml + + + end + \} + endCaptures + + 0 + + name + punctuation.definition.mapping.end.yaml + + + name + meta.flow-mapping.yaml + patterns + + + include + #prototype + + + match + , + name + punctuation.separator.mapping.yaml + + + include + #flow-pair + + + + flow-node + + patterns + + + include + #prototype + + + include + #flow-alias + + + include + #flow-collection + + + include + #flow-scalar + + + + flow-pair + + patterns + + + begin + \? + beginCaptures + + 0 + + name + punctuation.definition.key-value.begin.yaml + + + end + (?=[},\]]) + name + meta.flow-pair.explicit.yaml + patterns + + + include + #prototype + + + include + #flow-pair + + + include + #flow-node + + + begin + :(?=\s|$|[\[\]{},]) + beginCaptures + + 0 + + name + punctuation.separator.key-value.mapping.yaml + + + end + (?=[},\]]) + patterns + + + include + #flow-value + + + + + + + begin + (?x) + (?= + (?: + [^\s[-?:,\[\]{}#&*!|>'"%@`]] + | [?:-] [^\s[\[\]{},]] + ) + ( + [^\s:[\[\]{},]] + | : [^\s[\[\]{},]] + | \s+ (?![#\s]) + )* + \s* + : + (\s|$) + ) + + end + (?x) + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + | \s* : [\[\]{},] + | \s* [\[\]{},] + ) + + name + meta.flow-pair.key.yaml + patterns + + + include + #flow-scalar-plain-in-implicit-type + + + begin + (?x) + [^\s[-?:,\[\]{}#&*!|>'"%@`]] + | [?:-] [^\s[\[\]{},]] + + beginCaptures + + 0 + + name + entity.name.tag.yaml + + + contentName + entity.name.tag.yaml + end + (?x) + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + | \s* : [\[\]{},] + | \s* [\[\]{},] + ) + + name + string.unquoted.plain.in.yaml + + + + + include + #flow-node + + + begin + :(?=\s|$|[\[\]{},]) + captures + + 0 + + name + punctuation.separator.key-value.mapping.yaml + + + end + (?=[},\]]) + name + meta.flow-pair.yaml + patterns + + + include + #flow-value + + + + + + flow-scalar + + patterns + + + include + #flow-scalar-double-quoted + + + include + #flow-scalar-single-quoted + + + include + #flow-scalar-plain-in + + + + flow-scalar-double-quoted + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.yaml + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.yaml + + + name + string.quoted.double.yaml + patterns + + + match + \\([0abtnvfre "/\\N_Lp]|x\d\d|u\d{4}|U\d{8}) + name + constant.character.escape.yaml + + + match + \\\n + name + constant.character.escape.double-quoted.newline.yaml + + + + flow-scalar-plain-in + + patterns + + + include + #flow-scalar-plain-in-implicit-type + + + begin + (?x) + [^\s[-?:,\[\]{}#&*!|>'"%@`]] + | [?:-] [^\s[\[\]{},]] + + end + (?x) + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + | \s* : [\[\]{},] + | \s* [\[\]{},] + ) + + name + string.unquoted.plain.in.yaml + + + + flow-scalar-plain-in-implicit-type + + patterns + + + captures + + 1 + + name + constant.language.null.yaml + + 2 + + name + constant.language.boolean.yaml + + 3 + + name + constant.numeric.integer.yaml + + 4 + + name + constant.numeric.float.yaml + + 5 + + name + constant.other.timestamp.yaml + + 6 + + name + constant.language.value.yaml + + 7 + + name + constant.language.merge.yaml + + + match + (?x) + (?x: + (null|Null|NULL|~) + | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF) + | ( + (?: + [-+]? 0b [0-1_]+ # (base 2) + | [-+]? 0 [0-7_]+ # (base 8) + | [-+]? (?: 0|[1-9][0-9_]*) # (base 10) + | [-+]? 0x [0-9a-fA-F_]+ # (base 16) + | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60) + ) + ) + | ( + (?x: + [-+]? (?: [0-9] [0-9_]*)? \. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10) + | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \. [0-9_]* # (base 60) + | [-+]? \. (?: inf|Inf|INF) # (infinity) + | \. (?: nan|NaN|NAN) # (not a number) + ) + ) + | ( + (?x: + \d{4} - \d{2} - \d{2} # (y-m-d) + | \d{4} # (year) + - \d{1,2} # (month) + - \d{1,2} # (day) + (?: [Tt] | [ \t]+) \d{1,2} # (hour) + : \d{2} # (minute) + : \d{2} # (second) + (?: \.\d*)? # (fraction) + (?: + (?:[ \t]*) Z + | [-+] \d{1,2} (?: :\d{1,2})? + )? # (time zone) + ) + ) + | (=) + | (<<) + ) + (?: + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + | \s* : [\[\]{},] + | \s* [\[\]{},] + ) + ) + + + + + flow-scalar-plain-out + + patterns + + + include + #flow-scalar-plain-out-implicit-type + + + begin + (?x) + [^\s[-?:,\[\]{}#&*!|>'"%@`]] + | [?:-] \S + + end + (?x) + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + ) + + name + string.unquoted.plain.out.yaml + + + + flow-scalar-plain-out-implicit-type + + patterns + + + captures + + 1 + + name + constant.language.null.yaml + + 2 + + name + constant.language.boolean.yaml + + 3 + + name + constant.numeric.integer.yaml + + 4 + + name + constant.numeric.float.yaml + + 5 + + name + constant.other.timestamp.yaml + + 6 + + name + constant.language.value.yaml + + 7 + + name + constant.language.merge.yaml + + + match + (?x) + (?x: + (null|Null|NULL|~) + | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF) + | ( + (?: + [-+]? 0b [0-1_]+ # (base 2) + | [-+]? 0 [0-7_]+ # (base 8) + | [-+]? (?: 0|[1-9][0-9_]*) # (base 10) + | [-+]? 0x [0-9a-fA-F_]+ # (base 16) + | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60) + ) + ) + | ( + (?x: + [-+]? (?: [0-9] [0-9_]*)? \. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10) + | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \. [0-9_]* # (base 60) + | [-+]? \. (?: inf|Inf|INF) # (infinity) + | \. (?: nan|NaN|NAN) # (not a number) + ) + ) + | ( + (?x: + \d{4} - \d{2} - \d{2} # (y-m-d) + | \d{4} # (year) + - \d{1,2} # (month) + - \d{1,2} # (day) + (?: [Tt] | [ \t]+) \d{1,2} # (hour) + : \d{2} # (minute) + : \d{2} # (second) + (?: \.\d*)? # (fraction) + (?: + (?:[ \t]*) Z + | [-+] \d{1,2} (?: :\d{1,2})? + )? # (time zone) + ) + ) + | (=) + | (<<) + ) + (?x: + (?= + \s* $ + | \s+ \# + | \s* : (\s|$) + ) + ) + + + + + flow-scalar-single-quoted + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.yaml + + + end + '(?!') + endCaptures + + 0 + + name + punctuation.definition.string.end.yaml + + + name + string.quoted.single.yaml + patterns + + + match + '' + name + constant.character.escape.single-quoted.yaml + + + + flow-sequence + + begin + \[ + beginCaptures + + 0 + + name + punctuation.definition.sequence.begin.yaml + + + end + \] + endCaptures + + 0 + + name + punctuation.definition.sequence.end.yaml + + + name + meta.flow-sequence.yaml + patterns + + + include + #prototype + + + match + , + name + punctuation.separator.sequence.yaml + + + include + #flow-pair + + + include + #flow-node + + + + flow-value + + patterns + + + begin + \G(?![},\]]) + end + (?=[},\]]) + name + meta.flow-pair.value.yaml + patterns + + + include + #flow-node + + + + + + node + + patterns + + + include + #block-node + + + + property + + begin + (?=!|&) + end + (?!\G) + name + meta.property.yaml + patterns + + + captures + + 1 + + name + keyword.control.property.anchor.yaml + + 2 + + name + punctuation.definition.anchor.yaml + + 3 + + name + entity.name.type.anchor.yaml + + 4 + + name + invalid.illegal.character.anchor.yaml + + + match + \G((&))([^\s\[\]/{/},]+)(\S+)? + + + match + (?x) + \G + (?: + ! < (?: %\p{XDigit}{2} | [0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]] )+ > + | (?:!(?:[0-9A-Za-z\-]*!)?) (?: %\p{XDigit}{2} | [0-9A-Za-z\-#;/?:@&=+$_.~*'()] )+ + | ! + ) + (?=\ |\t|$) + + name + storage.type.tag-handle.yaml + + + match + \S+ + name + invalid.illegal.tag-handle.yaml + + + + prototype + + patterns + + + include + #comment + + + include + #property + + + + + scopeName + source.yaml + uuid + 686AD6AE-33F3-4493-9512-9E9FC1D5417F + +