{"slug": "clangd", "name": "clangd", "category": "other", "category_name": "Other software", "description": "", "recommenders": 4, "commenters": 8, "warners": 3, "score": 0.991, "rising": -1.31, "first": "2025-11-01", "latest": "2026-06-01", "why": "clangd works wonderfully and has been working wonderfully for a few years", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 1, "compare": 0, "warn": 3}, "spark": [1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "clangd works wonderfully and has been working wonderfully for a few years", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "https://clangd.llvm.org", "pricing": "", "aliases": ["clangd"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 755468707, "item_id": 47216794, "url": "https://news.ycombinator.com/item?id=47216794", "by": "dxuh", "date": "2026-03-02", "stance": "recommend", "quote": "clangd works wonderfully and has been working wonderfully for a few years", "excerpt": "I quite like modern C++, so I really tried to make it work for gamedev, but I think you can't really do it. You can use all the modern C++ features that are not in the standard library though! I am working on a little game the last few months and after a while I just decided to not use any of the C++ standard library (I just use a few C headers) and make my own Vector, Array, Span, String, FlatMap. And using those th", "context": "", "use_case": "C++ language server", "switched_from": "", "story": "Making Video Games in 2025 (without an engine)"}, {"id": 739270737, "item_id": 46204421, "url": "https://news.ycombinator.com/item?id=46204421", "by": "dsnr", "date": "2025-12-09", "stance": "recommend", "quote": "VS Code with clangd is what I use now when I need to code C++.", "excerpt": "Too little too late. Used to be a JetBrains user and subscriber when IDEA was the best Java IDE. They lost me with the excessive product segmentation in the pursuit for profits. For example, Python is heavily used for web dev where you need to do both backend and frontend. Neither PyCharm nor WebStorm alone offers what I need in one app. VS Code with clangd is what I use now when I need to code C++.", "context": "", "use_case": "C++ language server", "switched_from": "", "story": "Intellij IDEA now supports C/C++"}, {"id": 732574099, "item_id": 45785881, "url": "https://news.ycombinator.com/item?id=45785881", "by": "suby", "date": "2025-11-01", "stance": "recommend", "quote": "Renaming symbols (variables / functions) via clangd works fine.", "excerpt": "I don't think Helix can currently match the C++ experience you get with VS Code. * Debugging is rough. There's experimental DAP support, but it isn't ready to be used. I was able to set breakpoints and step through the code, but the UI for exploring variables / state while paused felt missing or was unintuitive enough that I couldn't figure it out. I use CLion for debugging. * Goto definition works with clangd as lon", "context": "", "use_case": "C++ language server", "switched_from": "", "story": "Beginner-friendly, unofficial documentation for Helix text editor"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 767605456, "item_id": 47975341, "url": "https://news.ycombinator.com/item?id=47975341", "by": "nickelpro", "date": "2026-05-01", "stance": "warn", "quote": "clangd will choke badly", "excerpt": "The compilation database[1] given to clangd needs to be complete, understood by the clangd argument parser, and capable of producing a build. This starts to hurt bad when the compiler producing the build is not clang. If you try to use a compile database describing C++20 module compile lines for GCC, clangd will choke badly. If you're using MSVC flags that clang-cl hasn't been taught yet, clangd falls over. If you're", "context": "", "use_case": "", "switched_from": "", "story": "Zed is 1.0"}, {"id": 757146546, "item_id": 47321659, "url": "https://news.ycombinator.com/item?id=47321659", "by": "gpderetta", "date": "2026-03-10", "stance": "warn", "quote": "that required me to frequently kill clangd", "excerpt": "Pretty much yes. I switched to eglot from emacs-lsp because of some frequent random errors (\"document not added\") that required me to frequently kill clangd; might be a PEBCAK problem, but went away with eglot. Everything mostly worked out of the box.", "context": "", "use_case": "", "switched_from": "", "story": "Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor"}]}], "who": [], "tags": [], "use_cases": ["c++ language server", "c/c++ language server"], "compared": [{"slug": "visual-studio-code", "name": "Visual Studio Code", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "cmake", "name": "CMake", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48357355", "title": "KDE at 30", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47949027", "title": "Zed is 1.0", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47317616", "title": "Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47176576", "title": "Making Video Games in 2025 (without an engine)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46289918", "title": "Writing a blatant Telegram clone using Qt, QML and Rust. And C++", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46204303", "title": "Intellij IDEA now supports C/C++", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {"warn": 1, "recommend": 2}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 1, "warn": 1}, "2026-04": {}, "2026-05": {"warn": 1}, "2026-06": {"neutral": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 773743106, "item_id": 48358944, "url": "https://news.ycombinator.com/item?id=48358944", "by": "badsectoracula", "date": "2026-06-01", "stance": "neutral", "quote": "coupled with clangd for C/C++ programming", "excerpt": "I don't really use Plasma itself (and soon i wont even be able to if the rumors of them dropping X11 support are to be believed) but i do use various KDE apps, like Krita (which i use for most painting stuff), Kate (my main programming editor, coupled with clangd for C/C++ programming), KolourPaint, Spectacle, Ghostwriter, etc and in general i find KDE/Qt apps to be more to my liking in their UX than anything based o", "context": "", "use_case": "C/C++ language server", "switched_from": "", "story": "KDE at 30"}, {"id": 767605456, "item_id": 47975341, "url": "https://news.ycombinator.com/item?id=47975341", "by": "nickelpro", "date": "2026-05-01", "stance": "warn", "quote": "clangd will choke badly", "excerpt": "The compilation database[1] given to clangd needs to be complete, understood by the clangd argument parser, and capable of producing a build. This starts to hurt bad when the compiler producing the build is not clang. If you try to use a compile database describing C++20 module compile lines for GCC, clangd will choke badly. If you're using MSVC flags that clang-cl hasn't been taught yet, clangd falls over. If you're", "context": "", "use_case": "", "switched_from": "", "story": "Zed is 1.0"}, {"id": 757146546, "item_id": 47321659, "url": "https://news.ycombinator.com/item?id=47321659", "by": "gpderetta", "date": "2026-03-10", "stance": "warn", "quote": "that required me to frequently kill clangd", "excerpt": "Pretty much yes. I switched to eglot from emacs-lsp because of some frequent random errors (\"document not added\") that required me to frequently kill clangd; might be a PEBCAK problem, but went away with eglot. Everything mostly worked out of the box.", "context": "", "use_case": "", "switched_from": "", "story": "Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor"}, {"id": 755468707, "item_id": 47216794, "url": "https://news.ycombinator.com/item?id=47216794", "by": "dxuh", "date": "2026-03-02", "stance": "recommend", "quote": "clangd works wonderfully and has been working wonderfully for a few years", "excerpt": "I quite like modern C++, so I really tried to make it work for gamedev, but I think you can't really do it. You can use all the modern C++ features that are not in the standard library though! I am working on a little game the last few months and after a while I just decided to not use any of the C++ standard library (I just use a few C headers) and make my own Vector, Array, Span, String, FlatMap. And using those th", "context": "", "use_case": "C++ language server", "switched_from": "", "story": "Making Video Games in 2025 (without an engine)"}, {"id": 740759218, "item_id": 46297451, "url": "https://news.ycombinator.com/item?id=46297451", "by": "spacechild1", "date": "2025-12-16", "stance": "recommend", "quote": "", "excerpt": "Qt Creator also supports clangd: https://doc.qt.io/qtcreator/creator-preferences-cpp-clangd.html. Personally, I haven't tried it yet.", "context": "", "use_case": "", "switched_from": "", "story": "Writing a blatant Telegram clone using Qt, QML and Rust. And C++"}, {"id": 739270737, "item_id": 46204421, "url": "https://news.ycombinator.com/item?id=46204421", "by": "dsnr", "date": "2025-12-09", "stance": "recommend", "quote": "VS Code with clangd is what I use now when I need to code C++.", "excerpt": "Too little too late. Used to be a JetBrains user and subscriber when IDEA was the best Java IDE. They lost me with the excessive product segmentation in the pursuit for profits. For example, Python is heavily used for web dev where you need to do both backend and frontend. Neither PyCharm nor WebStorm alone offers what I need in one app. VS Code with clangd is what I use now when I need to code C++.", "context": "", "use_case": "C++ language server", "switched_from": "", "story": "Intellij IDEA now supports C/C++"}, {"id": 738656224, "item_id": 46166014, "url": "https://news.ycombinator.com/item?id=46166014", "by": "cb321", "date": "2025-12-05", "stance": "warn", "quote": "", "excerpt": "PMunch and summarity both already said this, but because maybe code speaks louder than words (like pictures?)... This works: from strutils as su import nil echo su.split \"hi there\" (You can put some parens () in there if you like, but that compiles.) So, you can do Python-style terse renames of imports with forced qualification. You just won't be able to say \"hi there\".(su.split) or .`su.split` or the like. You can r", "context": "", "use_case": "", "switched_from": "", "story": "Nimony (Nim 3.0) Design Principles"}, {"id": 732574099, "item_id": 45785881, "url": "https://news.ycombinator.com/item?id=45785881", "by": "suby", "date": "2025-11-01", "stance": "recommend", "quote": "Renaming symbols (variables / functions) via clangd works fine.", "excerpt": "I don't think Helix can currently match the C++ experience you get with VS Code. * Debugging is rough. There's experimental DAP support, but it isn't ready to be used. I was able to set breakpoints and step through the code, but the UI for exploring variables / state while paused felt missing or was unintuitive enough that I couldn't figure it out. I use CLion for debugging. * Goto definition works with clangd as lon", "context": "", "use_case": "C++ language server", "switched_from": "", "story": "Beginner-friendly, unofficial documentation for Helix text editor"}]}