diff --git a/vscode/BUILD.md b/vscode/BUILD.md deleted file mode 100644 index 5e9517c..0000000 --- a/vscode/BUILD.md +++ /dev/null @@ -1,183 +0,0 @@ -# Developing NetBeans based Extension for VS Code - - - -## Prerequisities - -- JDK, version 11 or later -- Ant, latest version -- Maven, latest version -- node.js, latest LTS (to build VSIX) - - -## Getting the Code - -```bash -$ git clone https://github.com/apache/netbeans.git -$ cd netbeans/ -``` - -## Building - -To build the VS Code extension invoke: - -```bash -netbeans$ ant build -netbeans$ cd java/java.lsp.server -java.lsp.server$ ant build-vscode-ext -``` -The resulting extension is then in the `build` directory, with the `.vsix` extension. -The typical file name is `apache-netbeans-java-0.1.0.vsix` - the version can be -changed by using the `-Dvsix.version=x.y.z` property - that's what -[continuous integration server](https://ci-builds.apache.org/job/Netbeans/job/netbeans-vscode/) -and release builders do. - -### Building for Development - -If you want to develop the extension, use these steps for building instead: - -```bash -netbeans$ cd java/java.lsp.server -java.lsp.server$ ant build-lsp-server -java.lsp.server$ cd vscode -vscode$ npm install -vscode$ npm run watch -``` - -This target is faster than building the `.vsix` file. Find the instructions -for running and debugging below. - -### Cleaning - -Often it is also important to properly clean everything. Use: - -```bash -java.lsp.server$ ant clean-vscode-ext -java.lsp.server$ cd ../.. -netbeans$ ant clean -``` - -### Testing - -The `java.lsp.server` module has classical (as other NetBeans modules) tests. -The most important one is [ServerTest](https://github.com/apache/netbeans/blob/master/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/protocol/ServerTest.java) -which simulates LSP communication and checks expected replies. In addition to -that there are VS Code integration tests - those launch VS Code with the -VSNetBeans extension and check behavior of the TypeScript integration code: - -```bash -java.lsp.server$ ant build-vscode-ext # first and then -java.lsp.server$ ant test-vscode-ext -``` - -In case you are behind a proxy, you may want to run the tests with - -```bash -java.lsp.server$ npm_config_https_proxy=http://your.proxy.com:port ant test-vscode-ext -``` - -when executing the tests for the first time. That shall overcome the proxy -and download an instance of `code` to execute the tests with. - -### Eating our own Dog Food - -Using the application yourself is the best way of testing! If you want to -_edit/compile/debug_ Apache NetBeans sources, there is a way. After building -the project, execute: - -```bash -vscode$ npm run apisupport -``` - -the system connects to associated autoupdate center and downloads, installs -and enables `org.netbeans.modules.apisupport.ant` module. With such module installed -one can open Apache NetBeans projects and work with them directly from VSCode. - -## Running and Debugging - -To use the extension created for developement you can run VS Code with -following parameter: - -```bash -vscode$ code --extensionDevelopmentPath=`pwd` path_to_project -``` - -Or you can open the `vscode` folder in `code` directly and use **F5** to -debug the extension's *typescript code*. - -To debug the *Java code*, launch the NetBeans part of the VS Code system first -and specify suitable debug arguments to start _standalone NBLS_ instance: - -```bash -vscode$ npm run nbcode -- --jdkhome /jdk -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -``` - -To add extra modules while debugging the NetBeans part -```bash -vscode$ npm run nbcode -- -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000 -J-Dnetbeans.extra.dirs=/path/to/extension -``` - -Connect to the process with Java debugger, setup all breakpoints. Then launch -the VS Code extension (which connects to the already running _standalone NBLS_ Java process): - -```bash -vscode$ code --extensionDevelopmentPath=`pwd` path_to_the_maven_project -``` - -To start from a clean state, following -[CLI options](https://code.visualstudio.com/docs/editor/command-line) -maybe of an interest: -- `--user-data-dir` - clean any user settings with this option -- `--extensions-dir` - avoid 3rd party extensions using this option - -**Important note**: when `--user-data-dir` is used, the _standalone NBLS_ must be start as -```bash -vscode$ nbcode_userdir=/the-code-user-data-dir npm run nbcode -- --jdkhome /jdk -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -``` -So that the vscode can connect to the _standalone NBLS_ instance. - -### NBLS userdir locations -The default userdir location is inside the **global** vscode settings location: -- on Linux: `~/.config/Code/User/globalStorage//asf.apache-netbeans-java/userdir -- on MacOS X: ~/Library/Application Support/Code/User/globalStorage//asf.apache-netbeans-java/userdir - -When the environment variable `nbcode_userdir` (to e.g. `/tmp/foo`) is set when starting vscode or nbcode (npm run nbcode), the userdir will point to `/tmp/foo/userdir`. - -### Debug output -_Standalone NBLS_ can be instructed to print messages (stderr, out) to the console: add `-J-Dnetbeans.logger.console=true` to the npm commandline. This has the same effect as `netbeans.verbose = true` settings in the vscode. - -### LSP protocol tracing -Messages from the LSP protocol can be displayed in vscode by setting `java.trace.server = verbose` setting in vscode JSON settings. Sometimes it may be needed to record LSP requests and responses in the debug output log stream from the Apache NetBeans language server so that requests are properly ordered with logs from executed actions. This can be enabled on language server startup by adding `-J-Dorg.netbeans.modules.java.lsp.server.lsptrace.level=FINEST` -to the NBLS commandline. - -### Debugging separately from global NBLS -By default the extension uses **global** userdir of the **global** vscode instance and uses NBLS data in there. In case this is not desired, the `launch.json` must be changed: -``` - "env": { - "nbcode_userdir": "/path/to/development/area" - } -``` -When using _standalone NBLS_ at the same time, the NBLS must be started as -```bash -vscode$ user_data_dir=/path/to/development/area npm run nbcode -- --jdkhome /jdk -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -``` -This way the NBLS will use a separate config/cache directory and will not interfere with the default / global installation. diff --git a/vscode/README.md b/vscode/README.md index 04f697a..3f5561b 100644 --- a/vscode/README.md +++ b/vscode/README.md @@ -26,7 +26,7 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/apache/netbeans-vscode/blob/master/LICENSE) -This is [Apache NetBeans](http://netbeans.org) Language Server extension for VS Code. Use it to get all the _goodies of NetBeans_ via the VS Code user interface! Runs on __JDK11__ and all newer versions. +This is [Apache NetBeans](http://netbeans.org) Language Server extension for VS Code. Use it to get all the _goodies of NetBeans_ via the VS Code user interface! Runs on __JDK17__ and all newer versions. Apache NetBeans Language Server brings full featured Java development (edit-compile-debug & test cycle) for Maven and Gradle projects to VSCode. As well as other features. ## Getting Started @@ -44,9 +44,6 @@ Apache NetBeans Language Server brings full featured Java development (edit-comp subprojects etc. 4. Or simply create a new Java class file with `public static void main(String[] args)` method in opened folder and start coding, compiling, debugging. Works on JDK 8 and newer. -## Proxy Issues -When running this extension on GraalVM, as its runtime JDK, behind proxy it requires GraalVM JavaScript (Graal.JS) component installed to perform automatic proxy resolution. Either install Graal.JS using GraalVM VSCode extension available on Marketplace or invoke `gu install js` for GraalVM used by VSCode. - ## Supported Actions * __Java: New Project...__ allows creation of new Maven or Gradle project * __Java: New from Template...__ add various files to currently selected open project. Files are: @@ -240,6 +237,6 @@ This behavior can be disabled by setting `netbeans.conflict.check` setting to `f ## Contributing -Read [building instructions](BUILD.md) to help Apache community to +Read [building instructions](https://github.com/apache/netbeans-vscode/blob/master/BUILD.MD) to help Apache community to improve the extension.