Excuse me if i say something stupid, i do that a lot.

aspe:keyoxide.org:LWJJT46QY6F7W5MOKRUD3W6IOY

  • 0 Posts
  • 27 Comments
Joined 6 months ago
cake
Cake day: July 16th, 2024

help-circle


  • Use a keyword, it’ll make your life a lot easier for parsing. If you’re reluctant on using “enum” as a keyword, you should check out OCaml/ML’s “type” keyword (they are the exact same contept: ADTs, but rust weirdly associates them with enums)

    Don’t use magic strings! Not only is this hard to check for errors while writing code, you also can’t tell easily if it is a normal string, or an enum.

    In my old project, my syntax looked like this:

    // Flavour and vec of ingredients
    type Food[T] {
      | Pizza str, vec[T]
      | Cake str, vec[T]
      | Soup vec[T]
    }
    

    not only is this easy to parse, i’d say it sticks true to its ML roots. You should check odin’s enum syntax if you’re keen on making a unique syntax.




  • I love compiler dev, so i can give you a few tips:

    It may be hard to compile to rust, due to the borrow checker; but C or javascript are great first backends, i always go with C for my prototypes.

    PS: Don’t go with LLVM early on, it has almost no documentation! it’s not worth it, i learned that the hard way. Even zig replaced their LLVM backend with a C one.

    Also some good libraries for rust:

    Here’s a great list of libraries that can help with building it: https://github.com/Kixiron/rust-langdev

    Good luck with OA :)



  • fxomt@lemm.eetolinuxmemes@lemmy.worldDon’t get me wrong…
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    7 days ago

    So do i :) but i think helix is especially powerful with nix, for example. instead of having 5 compilers, lsps and such installed, you can create a nix flake for your project and it’ll install all that stuff for you. But for neovim you’d have to manually configure those LSPs in your config, so it is kind of just pointless anyway. But helix automatically loads all your installed LSPs, no config required. I love that about it, but neovim has grown on me.

    Plus, helix’s keybinds are amazing, even better than neovims. God i miss it.


  • fxomt@lemm.eetolinuxmemes@lemmy.worldDon’t get me wrong…
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    7 days ago

    Immediately after you install helix, you can start working, no config required. It’s really nice.

    It also has OOTB LSP, unlike in neovim where you have to setup manually for each installed LSP, helix just detects it. I also personally think it has better keybinds than neovim.

    But it still doesn’t have a plugin system, and it’s quite opinionated. They’re both amazing, and great options. Just depends on what you want in an editor; customizability, or do you want it to just work.







  • fxomt@lemm.eetoProgrammer Humor@programming.devGood guy clippy
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 days ago

    I agree. I was mainly thinking of neovim, but i guess vim works in this example, too.

    I was talking about the base editor itself, though. In the end it doesn’t even matter what we consider VSCode to be, i feel this thread has just devolved into arguing about semantics and bikeshedding, and there’s no correct solution.

    I think i’ll just be deleting my main comment, admit I had a bad take and move on. i’m tired of arguing about this.


  • fxomt@lemm.eetoProgrammer Humor@programming.devGood guy clippy
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    8 days ago

    Not really. there’s VSCode itself, and then there’s the extensions on top of it. But my main point was how vscode wasn’t designed to be an IDE, just a customizable code editor. Like neovim or emacs, you could customize it to the point of being similar to an IDE, but they’re still not considered IDEs.




  • fxomt@lemm.eetoProgrammer Humor@programming.devGood guy clippy
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    7
    ·
    edit-2
    8 days ago

    IDEs come bundled with tooling, such as debuggers, intelligent code completion, and OOTB language support, and language servers.

    vscode out of the box doesn’t have any of these, you install them with plugins. jetbrains products, for example would be IDEs, but editors like vscode and neovim aren’t. Those are code editors.


  • fxomt@lemm.eetoProgrammer Humor@programming.devGood guy clippy
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    5
    ·
    edit-2
    8 days ago

    vscode isn’t an IDE, but an actual IDE written in electron would be horrible.

    I don’t want to argue about this anymore. I admit i had a bad take, and this whole thread is just arguing about semantics at this point. Does it even really matter if vscode is an IDE or not? If it works, it works.