I use vscode for my personal projects (c++ and a fully open source stack, compiling for both Linux and Windows).

I’m using the proprietary version of vscode (via the aur) for the plugin repository, but I’ve always envied the open source version…

Are there any tools that have made you excited?

Bonus points if they have some support for compiling with MSVC (or if you can convince me to ditch it for something else).

  • hector@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    13 days ago

    Zed is delightful to work with, highly recommend it. It is very customizable, and debugger support is coming soon. It’s like neovim but I don’t have to spend 15% of my time maintaining it…

  • Solemarc@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    13 days ago

    Used to use vscode, then one day it stopped working for me. I’ve been using Helix full time for a few months now and I’m pretty happy with it.

  • AnotherPenguin@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    12 days ago

    Jetbrains IDE’s are top tier (but resource hungry). A text editor with some plugins is fine for smaller projects, like zed, sublime text or neovim

  • onlinepersona@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    13 days ago

    Right now, the jetbrains IDEs are my favourite because they are proper IDEs, not some editor with a bunch of scripts in a trenchcoat pretending to be an editor. But the company is starting to lose touch with its customers: developers who want an IDE for productivity, not a VS Code lookalike. It’s like the company is finally being taken over by managers who don’t know lick about development and it’s starting to show (at least to me).

    Now, I’m on the market for a new editor and even willing to pay, even though I’d prefer paying for an open source IDE. Right now, Zed is looking interesting. The only thing that bothers me is how loud people were about it. Hype destroys my faith in stuff as it’s often just good marketing. Another thing that bugged me is that when they started, they were “Mac first, Linux maybe”. But now that the hype has died down, there’s much less “omg, zed is the new editor and it will be better anything else” type posts, and it supposedly works on Linux, I can give it a try.

    Anti Commercial-AI license

      • astrsk@fedia.io
        link
        fedilink
        arrow-up
        0
        ·
        13 days ago

        Any advice? I’m trying to get a handle on it but I’m having trouble remembering anything or finding what to do in the first place.

        • ZweiEuro@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          6 days ago

          This advice will seem rather generic but this has worked for me. Background: I’ve been programming for a good 15 years in various languages and mainly in VSC and veeery long ago in the arduino IDE (I do not want to talk about those dark times).

          1. Get a pet project to try this against. Learning controls for the sake of it, is … useless. If its just text, there is no intuition or goal. I chose to try and teach myself rust and go through the learnopengl tutorial again and change it to work with miniquad-rs. Maybe pick something you are familiar with! A new language is a rather tall order usually.

          2. Get a functional config and edit it. Personally kickstart.nvim is really nice for generic settings, but their setup of plugins, and especially LSP (language server config) is really hard to read and difficult to parse. My recommendation for setup:

          2a. Copy thePrimeagen’s config ( https://github.com/ThePrimeagen/init.lua/tree/master ) which he creates with this tutorial: https://www.youtube.com/watch?v=w7i4amO_zaE NOTE: The actual config is using lazy now instead of the plugin manager he has in the tutorial! the broad strokes are the same but e.g. there is no “after” for the plugins and some other details. What he says about general vim config is still correct tho. Also lazy is much simpler, no longer do you need like 20 different packages for each LSP. (edit: found what makes it work on my setup it https://github.com/nvim-lua/kickstart.nvim/blob/6ba2408cdf5eb7a0e4b62c7d6fab63b64dd720f6/init.lua#L487 its mason-tool-installer in kickstart)

          2b. Make a subfolder like lua/theprimeagen e.g. lua/$USER.

          2c. Comment out this line https://github.com/ThePrimeagen/init.lua/blob/158c9ccd652e5921cc6940205da6ed20776e7cc7/init.lua#L1 and instead require yours.

          2d. open .config/nvim in VSCode (yes, it would recommend using something you know to edit)

          2e. line by line, file by file, go through the config files and his video and add what you think is interesting. This took me a good 5h (a good days work) to get somewhat done.

          2f. Also look at kickstart.nvim! Theprimeagen is a pro at this stuff so he has no descriptions for his keybindings! (Which you can add when you use e.g. vim.keymap.set("n", "<leader>pv", vim.cmd.Ex, { desc = "[p]roject [v]iew"}). ( The [] are just for niceness, no syntactic value). Why does this matter? -> Because kickstart.nvim has a config for the mind-blowingly useful which-key plugin ( https://github.com/nvim-lua/kickstart.nvim/blob/6ba2408cdf5eb7a0e4b62c7d6fab63b64dd720f6/init.lua#L302 ). Which shows hotkeys and their description while you play with em! Really good for learning!

          1. When making your config absolutely ignore anything that is not in the “top 10 things you do in any other editor”. E.g. I really only need “go to definition”, “go to file” (which is a telescope fuzzy find), “find references” or “rename”. ThePrimeagen has really words of wisdom here “If its something you do rarely, fuck automating it, only automate it when its actually worth remembering the hotkey”.

          2. In general you want to reduce friction between thinking, clicking and on-screen action. So anything like “oh what if I want to have a hotkey to rename a C++ header file AND its source file in one go” is a good deal too complex. Keep it super simple.

          3. learn how window jumping with stuff like :vsplit works in nvim, it works great!

          4. For Tmux, you only really need whatever this legend says: https://www.youtube.com/watch?v=vtB1J_zCv8I Sidenote: I made my first project a simple Tmux script that is exactly what fireship describes and launches pre-defined sessions. Works great!

          5. learn by doing :D

          Struggles:

          • Moving with hjkl is painful at first, but believe me it is goddamn worth it. I deactivated the arrow keys and mouse clicking altogether so I don’t accidentally do it. Also you will be using wb and tf mainly anyways! (word, back, to, find).
          • Learning the nvim internal file browser (netrw) is worth it!
          • Lua is nice but I have never used it before doing this a few days ago. After each plugin restart vim and check for any errors. If you copy something outdated or otherwise problematic you want to fail fast instead of end up with a tangled mess of configs that you need to throw out entirely.
          • Editing nvim configs while in nvim is dumb and really annoying. Just do it in VSC or something you are familiar with.

          Random misc:

          • Insane plugins: UndoTree (which ThePrimeagen uses)

          • Insane keycombos: e.g. you are somewhere inside of “Some Really long string that you might wanna change or copy”. normal mode. vi". -> v-> visual, i -> inside of, " -> whatever you wanna be inside of. It will select the entire string inside the ". Yes i know this is basic but this shit is SO useful. Works with ANY delimiter (afaik) like ([{

          • DuckDuckGo actually is navigate-able with hjkl! Pressing j to go down the results list is really useful. I am using hyprland so ctrl+tab focuses a browser window. Ctrl+t new window. Type in search. Enter. Go up and down down with jk. really nice, no mouse needed.

          Links: The entire primeagen playlist: https://www.youtube.com/playlist?list=PLm323Lc7iSW_wuxqmKx_xxNtJC_hJbQ7R

          kickstart.nvim: https://github.com/nvim-lua/kickstart.nvim/tree/master

          Note: I would share my config but my dotfiles are on my own git server and have sensitive info inside I don’t feel like cleaning out

  • pHr34kY@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    13 days ago

    Microsoft just released Edit a couple of days ago. At least it’s not bloated, and it’s cross-platform.

    • ulterno@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      13 days ago

      Edit

      That is bloat!

      Just look at the number of files required to build it. Just for a text editor!

      A single Makefile and a source file should be enough!

      Just use ed man!

    • RamenDame@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      12 days ago

      I just started a Python course. My tutor uses Thonny and I have tried Pycharm previously and prefer it. Maybe because I am lazy or because I prefer all the autofill I can get. And I need all the highlighting. I am code blind.

  • wise_pancake@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    13 days ago

    Neovim

    I tried using VSCode because of the copilot integration, but frankly copilot is underwhelming for me. I gave “vibe coding” a shot on a personal project and the results were slower than just doing it myself.

    I’m back to neovim. I’m very productive in customizing it and can never go back.

    • dafta@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      1
      ·
      13 days ago

      There’s avante.nvim for LLM integration, it supports most if not all LLM vendors at the moment.

      I tried it, however, and got to the same conclusion as you. Not worth it.

      • wise_pancake@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        13 days ago

        I found the rough areas did different by model

        e.g. Claude could not correct issues it introduced, it would sort of spiral through half refactors for an hour if unchecked.

        Gemini Pro asked for way too much permission. “Should I do this?” Yes, go, do it! “Okay, should I now add my edits” Yes. “Okay I added edits, now we can run make test”, okay run make Gemini requests to run make ugh it’s worse than a bad intern.

        Gemini would also frequently hallucinate APIs because I used a non-standard api for my hash table (allocate/dereference instead of get/set/update, which I find is more natural for managing ownership). And Gemini would rewrite my code style and order of operations for no reason (eg move a counter increment before updating another field).

        At no point could I just point the model at a small problem unsupervised. Even “update the test suite for 100% coverage of this module, make sure the tests are as small in scope as possible” had highly mixed results.

        And all models I tried would update my cmakelists and break it, and I hate dealing with cmake.

        I’ve been told the new Gemini is good at SQL and programming, but I’m underwhelmed on both. Gemini frequently doesn’t even know all the BigQuery functions, which being integrated into BigQuery Studio it should.

        They’re decent at code review, but a language server is still better at catching bugs.

  • namingthingsiseasy@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    12 days ago

    Vim when I can, and when I can’t, Neovim with plugins (LazyVim). Both are fast. I have had troubles with Neovim and configuration, and it does some things that really annoy me (like autoclosing parentheses - it just messes up everything). Honestly, the only feature that I really need is Go To Definition.

    But vim - I absolutely love it. I started using it nearly 20 years ago and it still does everything one could want if you’re willing to learn the keymaps and commands. Macros, ci), block indentation and so on. It’s even great for editing XML. If the codebases I’m working on these days weren’t so large and complicated, I would still be using it with very little configuration in my .vimrc.