1

I have been using Emacs for daily editing and programming for several years. I am deeply attracted to the fast and efficient input method as well as the customizability. But recently I find that it is sometimes difficult to find packages that provide high usability and convenience as some specialized software do.

For example, modern IDE provides official support for popular languages like Python which is out of the box and has a pretty display effect. Whereas it is hard to imagine that a community-driven / official package for Emacs can achieve this. Besides, there is Obsidian for the knowledge base, Notion for centralizing notes, etc.

So, I am wondering:

  1. What is the Emacs development team improving on?
  2. What is the core functionality Emacs provides as an editor?
  3. Is there any way that editor developers focus only on editing utilities, and ad hoc utilities are developed by third parties (non-community) and are shared over different editors in a unified manner?
yatse
  • 13
  • 4
  • “*modern IDE provides official support for popular languages*” --- Packages from GNU Elpa are official support; those from NonGNU and Melpa (and so on) are not. – shynur Apr 13 '23 at 05:30
  • editted, thanks @Shynur – yatse Apr 13 '23 at 06:06
  • Too many questions - one question per post, please. And some of the questions you asked encourage opinion-based answers. If you want to know why Emacs maintainers define the development process as it is, ask them directly, please. – Drew Apr 13 '23 at 15:39

1 Answers1

1

What is the Emacs development team improving on?

You can follow the development/mailing lists to find out:

What is the core functionality Emacs provides as an editor?

I have no idea how to answer this question. How long is a piece of string?

Is there any way that editor developers focus only on editing utilities, and ad hoc utilities are developed by third parties (non-community) and are shared over different editors in a unified manner?

This is already happening.

Third parties write editor-agnostic 'language servers' which support the language server protocol (LSP), and the 'eglot' library in Emacs integrates with those.

Third parties write editor-agnostic grammars/parsers for tree-sitter, and the tree-sitter integration in Emacs (29+) enables editing modes to leverage those parsers to recognise the language structure.

phils
  • 48,657
  • 3
  • 76
  • 115
  • Thanks for the information! From what I understand, LSP is only about parsing language, right? So what about modifying the text? Like we have Yasnippet for Emacs and Ultisnips for Vim, so is there a way to develop a single snippet extension for all editors? – yatse Apr 13 '23 at 06:01
  • 2
    Different editors are implemented in different ways. For instance, Emacs is heavily based around its own Emacs Lisp programming language and data structures -- other editors do not implement editing in that same way. The *only* way to share something between editors is to have a well-defined protocol for them to talk to, so you would need to define and implement some kind of stand-alone snippet service and protocol, and then implement the integration between that service and each editor you wanted to be able to use it. Maybe that's useful, but it's going to be limiting as well. – phils Apr 13 '23 at 07:14
  • 1
    So in short, yes, you *can* do this, but you need buy-in from developers of extensions for different editors to implement the integration with your service -- there's no such thing as writing a "universal extension" which can be installed in every text editor. – phils Apr 13 '23 at 07:17
  • 2
    Furthermore the integration work for each editor may be substantial, and in each case the users lose the ability to manipulate the functionality in the way they would be able to if it were a native extension for their editor, because the functionality must be restricted to what the protocol defines. – phils Apr 13 '23 at 07:22
  • Make sense. Thank you. – yatse Apr 13 '23 at 11:47