Support for `.jar` files in tasks and debugger

Ouverte
#220 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
15/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
À l'abandon
Stack technique
java
Domaine
tooling

Piste de recherche

The payload shows a user's workaround using .zed/debug.json (javac build step and Java debug launch), .zed/tasks.json (a run task), and .zed/settings.json (jdtls referencedLibraries pointing at MyJar.jar). The open question is whether the extension should detect .jar files on its own, which the issue leaves to the maintainers. Starting work means deciding that design first, then checking how the extension's debugger and jdtls setup handle classpath entries. Done would mean an agreed approach plus tests or docs.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

I’m not sure how the maintainers would like to implement this, but it would be great to have support for .jar files without any configuration or at least some mention of it in the documentation for this extension. Below is an example of the Zed settings files I’ve created to make jar files work in my project. I haven’t done much research on this, but I just wanted to get the conversation started. I’m also not sure if using a lib/ folder is better, but here’s the current project structure:

./
├── .zed/
│   ├── debug.json
│   ├── settings.json
│   └── tasks.json
├── MyJar.jar
├── bin/
└── src/
    ├── Main.java
    └── ExampleFile.java
// .zed/debug.json
[
    {
        "label": "Debug $ZED_STEM",
        "adapter": "Java",
        "request": "launch",
        "mainClass": "$ZED_STEM",
        "build": {
            "command": "javac -cp $ZED_WORKTREE_ROOT/MyJar.jar -d $ZED_WORKTREE_ROOT/bin $ZED_WORKTREE_ROOT/src/*.java",
            "shell": {
                "with_arguments": {
                    "program": "/bin/sh",
                    "args": ["-c"],
                },
            },
        },
    },
]
// .zed/settings.json
{
    "lsp": {
        "jdtls": {
            "initialization_options": {
                "project": {
                    "sourcePaths": ["src"],
                },
                "settings": {
                    "java": {
                        "project": {
                            "referencedLibraries": ["MyJar.jar"],
                        },
                    },
                },
            },
        },
    },
}
// .zed/tasks.json
[
    {
        "label": "Run Main with jar",
        "command": "find . -name '*.java' -not -path './bin/*' -print0 | xargs -0 javac -cp MyJar.jar -d bin && java -cp 'bin:MyJar.jar' Main",
        "use_new_terminal": false,
        "reveal": "always",
        "shell": {
            "with_arguments": {
                "program": "/bin/sh",
                "args": ["-c"],
            },
        },
    },
]
Langage dominant
Rust
Étoiles
225
Forks
47
Merge moyen
3 h 51 min
PR mergées (30 j)
7

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de zed-extensions/java

Toutes les issues de zed-extensions/java

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.