help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Editing Java (with LSP)


From: Filipp Gunbin
Subject: Re: Editing Java (with LSP)
Date: Tue, 14 Jun 2022 22:12:00 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (darwin)

On 13/06/2022 23:53 +0200, Alessandro Bertulli wrote:

> Filipp Gunbin <fgunbin@fastmail.fm> writes:
>
>> That seems to be true.  There're very few of us.
> Indeed
>
>>
>> I use my package javaimp (http://elpa.gnu.org/packages/javaimp.html),
>> it's limited in functionality, but it fits my needs.
>>
>> Current version knows about the project structure and dependencies (from
>> Maven or Gradle), assists with completion in imports, and implements
>> imenu better than cc-mode.  Next version is almost ready, it has
>> improved parsing (for imenu and other stuff), limited xref support
>> (finding a definition should work), navigation functions, and a minor
>> mode to enable all that.
>
> Uhm, interesting! I suppose it's a completely stand-alone package,
> independent from LSP?

Yes, it's independent from LSP.

It depends on Maven / Gradle to provide dependency and classpath info,
but invokes them as commands.

>> Next, I plan to add support for debugging via gud (I already have the
>> dependencies info), REPL via jshell (jdk 11), and perhaps implement
>> indentation (this will remove dependency on cc-mode).  However, I don't
>> know when I'll be able to complete all this.
>
> I have experimented with GUD/RealGUD, but honestly it didn't click in to
> me. I felt natural with gdb, but to me the GUD interface with other
> debuggers is not as standard as it should be. Let me know if I am naive
> here, but: if I can't use the same commands in every debugger, then
> whats the point?

I think the point is in integration of command-line debugger (jdb in
case of Java) with source files in Emacs buffers.

> Do you feel good with GUD? Did you have to do any special
> configuration?

I haven't used gud for a long time now.  And back then, I only checked
it works.  Without automagical feeding it with project sources /
classpath, it's almost useless, and I certainly wouldn't do that by
hand...

>> I don't intend to work on good font-lock support, because I don't use it
>> myself, and it would require full source parsing, which is better done
>> with treesitter (there's ongoing work on treesitter integration into
>> Emacs, hopefully we'll see it soon).  Also, clever source completion is
>> also not in my plan: for that, you need a compiler, via lsp or directly.
>
> Yap, I don't know treesitter but I suspect it may be an useful
> integration also to solve this problem. Unfortunately, completion is one
> of the thing that I find very useful (especially when exploring a new
> codebase/library/framework, having type-checked completion is really
> like having a guide, and it reduces basic, dumb errors)

Tree-sitter is an efficient parser library, see
https://tree-sitter.github.io/tree-sitter/.  However, for good
completion, I suspect you'd still have to resort to LSP.

Filipp



reply via email to

[Prev in Thread] Current Thread [Next in Thread]