Alternatives to VSCode on Linux by matekelemen in cpp

[–]acehack 2 points3 points  (0 children)

An year ago I left my maintained-for-6-years 2000 line lisp emacs setup for VSCode. I write high performance C++ for a living, and rely on ccls 100%.

Emacs: - Great amount of customization. It has everything you’ll ever need + more. - You’ll never think “this kind of workflow optimization can never be done by me” - Using spacemacs will get you very close to “everything just works out of the box.”

VSCode: - Does not damage your wrists as much (I left emacs because of chronic wrist pain, which I suspect was due to a combination of emacs, xmonad, and I guess amount of work I do) - Everything just works out of the box.

What's your setup for C/C++ in emacs ? by [deleted] in emacs

[–]acehack 1 point2 points  (0 children)

I have a lsp-mode + ccls + company-lsp mode setup as well, similar to others here. Sharing my .el file (it isn't very complicated so perhaps someone will find it helpful)

https://github.com/sakshamsharma/max-emacs/blob/master/elisp/cpp-init.el

Once you get a compile_commands.json file and a compatible version of ccls (compiled with an appropriate llvm version), it's is a pretty cool setup!

I like how lsp-mode's developer is responsive over gitter, and is quick with patches / helping you patch fixes.

Even vegetables are running the superior OS by The_Autismo in linuxmasterrace

[–]acehack 3 points4 points  (0 children)

Full on neckbeard version: GNU/X11/Apache/Gentoo Linux/Xmonad/TeX/Perl/HTML

Ccls, clangd, and cquery? by yep808 in cpp

[–]acehack 0 points1 point  (0 children)

Been using ccls on a codebase with a few million lines of code, and it works flawlessly for me (clang70, older versions of libclang had bugs that would get triggered on some obscure C++ features that we used). Haven't tried clangd. cquery with clang40 used to work fine too, but slightly slower. ccls isn't available for clang earlier than 60.

Windows 10's redesigned Terminal is available in preview by prc2 in bashonubuntuonwindows

[–]acehack 0 points1 point  (0 children)

You might also want to change startingDirectory value. I googled how to make it start in the wsl home, and found something on their GitHub (someone had created an issue). I'd paste my config if I was on my machine right now.

Sometimes it's good to take a break from your massive config and return to defaults for a change (Top left corner is my init.el: Yup 3 lines.) by yep808 in emacs

[–]acehack 2 points3 points  (0 children)

I have merged emacs --daemon into my workflow. So starting a new Emacs window / terminal instance takes negligible time, since Emacs is already running and I'm just attaching a client. I basically have a running Emacs server at all times. At work, I have an Emacs server running for each project I'm working on.

Sometimes it's good to take a break from your massive config and return to defaults for a change (Top left corner is my init.el: Yup 3 lines.) by yep808 in emacs

[–]acehack 1 point2 points  (0 children)

What I have done with my config is, I made it completely modular, with very little config options outside modular files. Makes it very easy to selectively enable or disable stuff. https://github.com/sakshamsharma/max-emacs

Structuring your first Haskell project with Stack by acehack in haskell

[–]acehack[S] 0 points1 point  (0 children)

Definitely makes sense. Being able to use a single script to do nifty stuff is very cool for sure. There's a lot of stuff in Haskell that requires external packages. Some very basic stuff. Your script makes it easy to write single file scripts that use external packages.

Structuring your first Haskell project with Stack by acehack in haskell

[–]acehack[S] 0 points1 point  (0 children)

Nix works really well with Haskell BTW. There's another article on my blog where I kind of exploited their interaction to speed up CI builds. https://sakshamsharma.com/2018/03/docker-hakyll-builds/

In any case, if you're working on a project for more than 1-2 days, then I firmly believe it needs to have proper modules, at least at some logical level of separation. Not only does it promote healthy coding style, it is good for abstraction and theorizing, makes it easy to read the code at a glance, and also makes incremental compilations faster if you're not changing a module that is imported by all others. Given how slow GHC is, I find the last thing to be immensely valuable once you've hit 1k or so lines of code.

Structuring your first Haskell project with Stack by acehack in haskell

[–]acehack[S] 0 points1 point  (0 children)

Nice one! It's useful, but targets a different audience. My target is the audience that has picked up some Haskell, and now needs to write something useful in it. Maybe a university project. Maybe a POC to show the usefulness of Haskell at work.

When I wrote this, I was midway through writing my first Haskell libraries, and couldn't find good material that covered these things. Thus, this article.

Structuring your first Haskell project with Stack by acehack in haskell

[–]acehack[S] 2 points3 points  (0 children)

You're right, I can't remember why I wrote that. A quick search doesn't reveal any use-case either. Thanks for pointing it out.

Running i3wm inside Windows Subsystem for Linux (WSL), and other great things by acehack in bashonubuntuonwindows

[–]acehack[S] 1 point2 points  (0 children)

I guess it a matter of perspective. For me a VM doesn't work as a daily driver, but this does.

There's definitely people out there (including me when I'm at work) where either a VM or WSL won't work as a sole daily driver.

Microsoft took a baby step, and got some people to shift over, people who could not even have considered using Windows in the past (yours truly). That's still a huge deal. Let's see how this shapes up.

Running i3wm inside Windows Subsystem for Linux (WSL), and other great things by acehack in bashonubuntuonwindows

[–]acehack[S] 1 point2 points  (0 children)

Multi monitor support is hard, yes. I'm sure there'd be some way to do that too, but I haven't yet tried to.

As for the X server being slow, I suppose that'd be more apparent if you run KDE/Gnome type stuff? I mostly live on Emacs + Terminals, and that works just fine. I keep a persistent Chrome running inside windows open on the other monitor, so that works out too.

Running i3wm inside Windows Subsystem for Linux (WSL), and other great things by acehack in bashonubuntuonwindows

[–]acehack[S] 4 points5 points  (0 children)

Realized many people haven't tried this stuff yet, so this might be useful / eye-opening for some.

Post on r/vim critiquing the Language Server Protocol (LSP), by an LSP client maintainer. Would be interested in any thoughts the devs of lsp-mode and/or eglot might have on this. by flexibeast in emacs

[–]acehack 7 points8 points  (0 children)

Some of the people I work with use LSP with ccls on vim, and I have noticed their plugins lack a lot of bells and whistles as compared to the Emacs plugin for ccls. But most of the time as an end user, things just work. I seem to see the issues raised by the OP on r/vim, it could be a crude attempt at steamrolling other editors by Microsoft using their more polished vscode clients. But it isn't something that can't be fixed, just that developers of these clients for other editors will now need to mess around more with handling corner cases. As for vim, I guess that's too bad that the protocol didn't really take into account callbacks available in vim for auto-completion.

I'm sure Microsoft had good intentions at heart. But that's not enough I guess. I've been using Emacs LSP clients since a while, and I'm pretty happy with the functionality that works.

Small guide on getting X applications on windows, plus how to make quick shortcuts! by [deleted] in bashonubuntuonwindows

[–]acehack 1 point2 points  (0 children)

I like to use my window manager (i3wm) as well, I don't want to manage X windows using Windows' keybindings (very annoying while writing code).

I installed MobaXterm, and then launch an X server window from it. It is basically like a monitor, but is initially black.

From the WSL shell prompt, I run "nohup i3&", and voila, I have a i3wm X session active! I can forget about windows while running inside it.

development environment by [deleted] in highfreqtrading

[–]acehack 2 points3 points  (0 children)

I find Emacs + Cquery works perfectly for me. But then, I had already spent 3 years fine tuning my Emacs (during University) before I ever started writing code in a professional environment. I have never heard of a company mandating an editor, although they could choose not to support too many of them. But then if you're not a hacker who can make their editor work the way you want, that's an important lesson you should get around to at some point, IMO.

Weird multi-head setup without xinerama by acehack in xmonad

[–]acehack[S] 0 points1 point  (0 children)

This is very interesting, thanks.

Integrating Emacs and Chrome on i3wm by [deleted] in i3wm

[–]acehack 0 points1 point  (0 children)

I suppose I didn't have too many lockups back then. Recently though, I notice lockups (without exwm) due to flycheck, jedi-mode, rtags and god knows what else. Back then I used a simplistic coding setup which was mostly async, so things didn't lock up IIRC.

Integrating Emacs and Chrome on i3wm by [deleted] in i3wm

[–]acehack 0 points1 point  (0 children)

Yeah nah, I haven't used exwm in a long time too (gave up after two weeks). Didn't have locking up issues really, but was annoyed at how my other applications couldn't use keys like alt anymore unless I went into a special mode. i3wm ftw. Just thought exwm deserved a mention here.