Pourquoi pouvez-vous développer Java avec Visual Studio Code?

Cet article est l'entrée pour le deuxième jour de «Visual Studio Code Advent Calendar 2018». Hier, @tempakyousuke's "The strongest key bind cheat sheet (VSCode) I think of "était.

Récemment, lors de l'écriture de Java, j'utilise ** Visual Studio Code (ci-après VS Code) ** comme IDE. La raison principale est qu'il est ** léger **, et bien qu'il existe encore certaines parties fonctionnelles qui ne peuvent pas être atteintes par Eclipse, IntelliJ IDEA et NetBeans, il possède les fonctions minimales. En outre, le développement de nouvelles fonctions telles que ** Visual Studio IntelliCode ** prend en charge Java est également actif et nous pouvons nous attendre à l'avenir.

Tout en l'utilisant ** "Au fait, pourquoi est-ce que je peux déboguer Java avec VS Code? Que se passe-t-il à l'intérieur de l'extension?" ** Je me suis soudainement demandé, alors je vais chercher. J'ai fait. Pour la première fois parmi eux, ** LSP (Language Server Protocol) ** et ** [DAP (Debug Adapter Protocol)](https: // Connaissant microsoft.github.io/debug-adapter-protocol/) **, Eclipse JDT Language Server et Eclipse LSP4J //projects.eclipse.org/proposals/eclipse-lsp4j) Je suis arrivé à quelque chose qui s'appelle. Je n'avais pas beaucoup d'informations en japonais, je vais donc les résumer.

Extensions de code Visual Studio

VS Code peut être utilisé à des fins diverses en raison des extensions. Les extensions sont également utilisées lors du développement de Java. https://marketplace.visualstudio.com/VSCode 2018-10-28_17h41_05.png La configuration des extensions VS Code est décrite à la page suivante. https://code.visualstudio.com/docs/extensions/overview

** Language Server ** et ** Debug Adapter sont importants lors de la création d'extensions pour les langages de programmation. //code.visualstudio.com/docs/extensions/example-debuggers) **, chacun ** [LSP (Language Server Protocol)](https://microsoft.github.io/language-server- Microsoft joue un rôle central dans la définition des spécifications en tant que protocole /) ** et ** DAP (Debug Adapter Protocol) **.

2018-10-28_16h00_40.png

LSP(Language Server Protocol)

LSP est le [Sommet Red Hat et Dev Nation tenu à San Francisco le 27 juin 2016] de Microsoft (https: // www. Sur redhat.com/en/about/press-releases/red-hat-codenvy-and-microsoft-collaborate-language-server-protocol), Red Hat, Codenvy [^ 1] et Annonce des spécifications .. Un protocole basé sur JSON-RPC pour la communication entre Language Server et les éditeurs / IDE qui fournit l'auto-complétion, le passage à la définition, la recherche, etc. En tant qu'article japonais, "protocole de serveur de langue (partie 1)" est assez détaillé.

[^ 1]: Codenvy a été racheté par Red Hat en mai 2017, et que Red Hat a été racheté par IBM cette année, alors maintenant c'est sous IBM ...?

2018-12-02_15h00_51.png Il est organisé en Liste des implémentations, et il existe actuellement deux listes Java.

2018-10-28_15h53_45.png

DAP(Debug Adapter Protocol)

DAP est un protocole qui résume les fonctions du débogueur, visant à atteindre les points communs suivants en utilisant DAP. est. 図1.png

Les implémentations sont répertoriées comme LSP, et Java est désormais "[Debugger for Java](https: // github] .com / Microsoft / vscode-java-debug) ». 2018-10-28_15h54_02.png

Le serveur de langage Eclipse JDT et le débogueur pour Java sont inclus dans le pack d'extension Java

Lors du développement de Java avec VSCode, il existe plusieurs options, mais le [Java Extension Pack] de Microsoft (https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack) Est la méthode la plus populaire. https://code.visualstudio.com/docs/java/extensions image.png Lorsque vous installez Java Extension Pack, les quatre extensions suivantes sont installées et vous êtes prêt à utiliser les implémentations LSP et DAP.

Le premier "Language Support for Java (TM) by Red Hat" est développé par Eclipse Foundation [Eclipse JDT Language Server] ](Https://projects.eclipse.org/proposals/jdt-language-server) est fourni et est basé sur les quatre packages suivants.

Personnellement, il est très intéressant que la Fondation Eclipse ait publié un LSP. L'autre jour JJUG Mike Milinkovich, représentant de la Fondation Eclipse au séminaire de nuit de Jakarta EE J'en parlais, mais quand j'ai parlé d'IDE tel qu'Eclipse à l'étape précédente, on m'a demandé "Qui connaît LSP?" (Bien que je puisse difficilement l'obtenir ...), mais j'étais impliqué dans l'arrière-plan de VS Code. Tu étais là.

Je pensais toucher un peu le LSP4J pour ce calendrier de l'Avent, mais je n'avais pas assez de temps ... Il a été écrit en détail dans l'article suivant, donc si vous êtes intéressé, essayez-le.

Introduction au protocole de serveur de langues avec LSP4J

En regardant les sociétés membres actives de LSP4J et JDT sur la page Eclipse, elles sont les suivantes.

Eclipse LSP4J 2018-12-02_15h30_59.png

Eclipse JDT 2018-12-02_15h30_50.png

Tous deux incluaient TypeFox et les deux chefs de projet (Miro Spönemann, Sven Efftinge) de LSP4J étaient également des personnes de TypeFox. Après avoir étudié de quel type d'entreprise il s'agit, c'est une entreprise qui se concentre sur des outils de développement tels que IDE, et c'est une entreprise qui a publié GitHub Online IDE Gitpod. Quand j'ai regardé le site, il y avait Eclipse Theia, et j'ai trouvé que ça avait l'air plutôt bien, mais étonnamment il n'y avait pas beaucoup d'informations japonaises ... Vérifiez aussi cette zone. il semble que.

J'ai un peu déraillé à la fin, mais pourquoi VS Code peut-il développer Java? J'ai essayé de le découvrir.

Recommended Posts

Pourquoi pouvez-vous développer Java avec Visual Studio Code?
Ce que j'ai appris en travaillant Java avec Visual Studio Code
Java avec Visual Studio Code
Créer un environnement de développement de programme Java avec Visual Studio Code
Utiliser PlantUML avec Visual Studio Code
Créer un environnement de développement Web APP avec Java + Spring avec Visual Studio Code
[Mac] Installer Java dans Visual Studio Code
Un enregistrement de la configuration d'un environnement de développement Java avec Visual Studio Code
Essayez le débogage à distance Java avec des conteneurs distants dans Visual Studio Code Insiders
Découvrez .NET 5 avec Docker et Visual Studio Code
Ajouter l'option --enable-preview dans Java dans Visual Studio Code
[Mac] Installer Java dans Visual Studio Code (VS Code)
Pourquoi puis-je utiliser la commande rails installée avec gem? ??
Comment utiliser PlantUML avec Visual Studio Code (créé le 30 octobre 2020)
Coder Java depuis Emacs avec Eclim
J'ai essayé d'interagir avec Java
J'ai essayé la communication UDP avec Java
Construire Java avec Mac vs Code
Exécuter du code Java packagé avec des commandes
Ce que j'ai appris avec Java Gold
Ce que j'ai appris avec Java Silver
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 1/3 [Préparation]
Développement d'applications Web Spring5 MVC avec Visual Studio Code Hello World Creation
J'ai essayé d'apprendre Java avec une série que les débutants peuvent comprendre clairement
Développement d'applications Web Spring Boot2 avec connexion Visual Studio Code SQL Server
Développement d'applications Web Spring5 MVC avec connexion Visual Studio Code SQL Server
[Visual Studio Code] J'obtiens une erreur de syntaxe lors de l'exécution du débogage lors de l'utilisation de rbenv
Développement d'applications Web Spring Boot2 avec création de Visual Studio Code Hello World
Développement d'applications Web Spring5 MVC avec création de modèles Visual Studio Code Maven
Profilage avec Java Visual VM ~ Utilisation de base ~
Préparer l'environnement de développement Java avec VS Code
Lier le code Java et C ++ avec SWIG
J'ai essayé d'utiliser OpenCV avec Java + Tomcat
[JaCoCo (Java Code Coverage)] Utilisation avec NetBeans
Exécutez du code Java à partir de cpp sur cocos2dx
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 2/3 [Création de page 1/2]
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 3/3 [Création de page 2/2]
[Bonne nouvelle] Vous pouvez toujours utiliser Java 8 !!
J'ai essayé de faire une authentification de base avec Java
Analyse de code statique par Checkstyle avec Java + Gradle
Impossible de définir java.home avec le code Visual Studio.
Je veux utiliser java8 forEach avec index
Couverture de code Java plus confortable avec Jacoco 0.8.0
En utilisant Gradle avec VSCode, compilez Java → exécutez
Pourquoi Java était la langue cible que je déteste
J'ai créé Code Pipeline avec AWS CDK.
Essayez de déboguer un programme Java avec VS Code
J'ai essayé de casser le bloc avec java (1)
Créer un environnement de développement Java avec VS Code
La procédure que j'ai effectuée lorsque j'ai préparé l'environnement pour gradle + Java avec VS Code (Windows 10)
Je ne peux pas saisir le japonais avec le code VS (Visual Studio Code) d'Ubuntu 18.04.5! ?? Si vous souhaitez télécharger VS Code sur Ubuntu, rendez-vous sur le site officiel! !!