unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Filipp Gunbin <fgunbin@fastmail.fm>
To: Alessandro Bertulli <alessandro.bertulli96@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Editing Java (with LSP)
Date: Mon, 13 Jun 2022 18:48:12 +0300	[thread overview]
Message-ID: <m2zgigwon7.fsf@fastmail.fm> (raw)
In-Reply-To: <87k09ky8kc.fsf@gmail.com> (Alessandro Bertulli's message of "Mon, 13 Jun 2022 15:43:46 +0200")

Hi,

On 13/06/2022 15:43 +0200, Alessandro Bertulli wrote:

> Hi all!
>
> I am struggling to instruct Emacs to properly assist me in writing Java
> code. Whereas using C/C++ was a breeze, Java simply seems to be more
> buggy. I explain: using the integrated server from lsp-mode seems to be
> broken. I partially resolved it by manually dowloading a (much) newer
> version of the server (which is jdtls). This seemed to solve part of the
> problems, but the experience is still buggy. Completion often is not
> triggered (not even by explicitly C-M-i), the server sometimes crashes,
> and when I modify the buffer I need to write it before error
> highlighting properly updates (for instance, if I modify a piece of code
> who had an error, that point on screen is still highlightd as an error,
> even if it's now in the middle of a word). Moreover, the indentation
> sometimes doesn't work.
>
> Now, it seems like:
> - I am one of the very, very few people on Earth using Emacs to write
> Java

That seems to be true.  There're very few of us.

> - I am the only one having problems.
>
> Can you please give me your feedback? Does any of you write Java code?
> How is it? Do you have the same problems too? If yes, have you found a
> solution? Do you use LSP? Or some other package?
>
> Note that my config is simply lsp-mode + lsp-java.

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.

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 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.

HTH, Filipp



  reply	other threads:[~2022-06-13 15:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13 13:43 Editing Java (with LSP) Alessandro Bertulli
2022-06-13 15:48 ` Filipp Gunbin [this message]
2022-06-13 21:53   ` Alessandro Bertulli
2022-06-14 19:12     ` Filipp Gunbin
2022-06-13 20:32 ` Milan Zamazal
2022-06-16  3:29 ` Pankaj Jangid
2022-06-16 13:34   ` Alessandro Bertulli
2022-06-17  3:27     ` Pankaj Jangid
  -- strict thread matches above, loose matches on Subject: below --
2022-06-13 21:35 Alessandro Bertulli
2022-06-14 19:13 ` Milan Zamazal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2zgigwon7.fsf@fastmail.fm \
    --to=fgunbin@fastmail.fm \
    --cc=alessandro.bertulli96@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).