• Ramin Honary@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    11 months ago

    “In what world is Vscode not customizable?”

    When I think of “easy to customize,” I am thinking about Emacs in particular, but really any editor that includes a scripting engine which is used to program the entire editor user interface.

    With editors like VSCode or Geany that I would say are “hard to customize,” you can’t just write a snippet of TypeScript or C++ into a file which you can just run right there in the editor process. You can write extensions in TypeScript, but they have to be properly compiled, linked against the editor libraries, and properly installed with a manifest and everything, in order to write your own code that runs in a way that modifies the editor’s behavior. That or you have to run your TypeScript code as a text filter in an external Node.js process.

    Geany does have Lua and Python scripting engines as extensions, but you have to understand the Geany API pretty well in order to do anything elaborate, it was never really designed for people to be able to script the entire GUI or define their own whole unique workflows.

    With Emacs, or any scriptable text editor, you just write a few lines of code and run it (even without saving a file), and the code actually alters the state of the editor itself. While you could write an entire app, like a Matrix or Mastodon client, as you would like a VSCode or Geany extension, you can also easily write a few lines of code to do any random thing at all. You can write code to suit any workflow imaginable, no matter how ridiculous: code that changes the color theme of the whole editor at certain times of the day, or code that opens certain kinds of files always in 3 separate windows, each window scrolled to a particular section of the file. You can run processes or alter the filesystem or transform entire batches of files in response to any event.

    And you can do all of this without compiling or installing extensions of any kind, and often with no more than a dozen lines of code. There are no limitations. This is what I consider to be “easily customizable.”