frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

GPTZero finds 100 new hallucinations in NeurIPS 2025 accepted papers

https://gptzero.me/news/neurips/
242•segmenta•1h ago•133 comments

In Europe, Wind and Solar Overtake Fossil Fuels

https://e360.yale.edu/digest/europe-wind-solar-fossil-fuels
211•speckx•2h ago•151 comments

Qwen3-TTS Family Is Now Open Sourced: Voice Design, Clone, and Generation

https://qwen.ai/blog?id=qwen3tts-0115
140•Palmik•3h ago•24 comments

Tree-sitter vs. Language Servers

https://lambdaland.org/posts/2026-01-21_tree-sitter_vs_lsp/
88•ashton314•2h ago•26 comments

Design Thinking Books You Must Read

https://www.designorate.com/design-thinking-books/
184•rrm1977•5h ago•79 comments

AnswerThis (YC F25) Is Hiring

https://www.ycombinator.com/companies/answerthis/jobs/r5VHmSC-ai-agent-orchestration
1•ayush4921•5m ago

It looks like the status/need-triage label was removed

https://github.com/google-gemini/gemini-cli/issues/16728
22•nickswalker•55m ago•5 comments

ISO PDF spec is getting Brotli – ~20 % smaller documents with no quality loss

https://pdfa.org/want-to-make-your-pdfs-20-smaller-for-free/
85•whizzx•6h ago•36 comments

Ubisoft cancels six games including Prince of Persia and closes studios

https://www.bbc.co.uk/news/articles/c6200g826d2o
38•piqufoh•36m ago•19 comments

30 Years of ReactOS

https://reactos.org/blogs/30yrs-of-ros/
145•Mark_Jansen•9h ago•73 comments

Show HN: Sweep, Open-weights 1.5B model for next-edit autocomplete

https://huggingface.co/sweepai/sweep-next-edit-1.5B
466•williamzeng0•17h ago•90 comments

Joe Armstrong and Jeremy Ruston – Intertwingling the Tiddlywiki with Erlang [video]

https://www.youtube.com/watch?v=Uv1UfLPK7_Q
15•kerim-ca•2d ago•0 comments

We will ban you and ridicule you in public if you waste our time on crap reports

https://curl.se/.well-known/security.txt
733•latexr•6h ago•438 comments

Doctors in Brazil using tilapia fish skin to treat burn victims

https://www.pbs.org/newshour/health/brazilian-city-uses-tilapia-fish-skin-treat-burn-victims
217•kaycebasques•11h ago•71 comments

Your brain on ChatGPT: Accumulation of cognitive debt when using an AI assistant

https://www.media.mit.edu/publications/your-brain-on-chatgpt/
466•misswaterfairy•18h ago•335 comments

Show HN: Interactive physics simulations I built while teaching my daughter

https://www.projectlumen.app/
38•anticlickwise•3d ago•3 comments

Douglas Adams on the English–American cultural divide over "heroes"

https://shreevatsa.net/post/douglas-adams-cultural-divide/
240•speckx•3h ago•233 comments

In Praise of APL (1977)

https://www.jsoftware.com/papers/perlis77.htm
73•tosh•8h ago•41 comments

Threat actors expand abuse of Microsoft Visual Studio Code

https://www.jamf.com/blog/threat-actors-expand-abuse-of-visual-studio-code/
240•vinnyglennon•16h ago•244 comments

eBay explicitly bans AI "buy for me" agents in user agreement update

https://www.valueaddedresource.net/ebay-bans-ai-agents-updates-arbitration-user-agreement-feb-2026/
253•bdcravens•19h ago•270 comments

Meet the Alaska Student Arrested for Eating an AI Art Exhibit

https://www.thenation.com/article/society/alaska-student-arrested-eating-ai-art-exhibit/
68•petethomas•2h ago•28 comments

Claude's new constitution

https://www.anthropic.com/news/claude-new-constitution
530•meetpateltech•1d ago•617 comments

The Science of Life and Death in Mary Shelley's Frankenstein

https://publicdomainreview.org/essay/the-science-of-life-and-death-in-mary-shelleys-frankenstein/
13•Anon84•5d ago•1 comments

Waiting for dawn in search: Search index, Google rulings and impact on Kagi

https://blog.kagi.com/waiting-dawn-search
409•josephwegner•23h ago•228 comments

Hands-On Introduction to Unikernels

https://labs.iximiuz.com/tutorials/unikernels-intro-93976514
95•valyala•5d ago•32 comments

Gathering Linux Syscall Numbers in a C Table

https://t-cadet.github.io/programming-wisdom/#2026-01-17-gathering-linux-syscall-numbers
80•phi-system•5d ago•34 comments

Lix – universal version control system for binary files

https://lix.dev/blog/introducing-lix/
118•onecommit•17h ago•45 comments

Skip is now free and open source

https://skip.dev/blog/skip-is-free/
471•dayanruben•1d ago•214 comments

Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)

https://github.com/ChartGPU/ChartGPU
643•huntergemmer•1d ago•201 comments

The mushroom making people hallucinate tiny humans

https://www.bbc.com/future/article/20260121-the-mysterious-mushroom-that-makes-you-see-tiny-people
34•1659447091•6h ago•15 comments
Open in hackernews

Tree-sitter vs. Language Servers

https://lambdaland.org/posts/2026-01-21_tree-sitter_vs_lsp/
86•ashton314•2h ago

Comments

tetris11•1h ago
I love tree-sitter+eglot but a few of the languages/schemes I work in, simply don't have parsers:

    > pacman -Ssq tree-sitter
    tree-sitter
    tree-sitter-bash
    tree-sitter-c
    tree-sitter-cli
    tree-sitter-javascript
    tree-sitter-lua
    tree-sitter-markdown
    tree-sitter-python
    tree-sitter-query
    tree-sitter-rust
    tree-sitter-vim
    tree-sitter-vimdoc

Where's R, YAML, Golang, and several others?
taeric•1h ago
Odd, yaml-ts-mode exists? Did they change how it gets its parser?
codethief•1h ago
Uhh… The fact that there's no Archlinux package for a given language doesn't imply there's no tree-sitter support (official or 3rd-party) for that language? See e.g. the very long list of languages on https://github.com/Goldziher/tree-sitter-language-pack , which does include R, YAML, Golang, and many more.
woodruffw•1h ago
tree-sitter-yaml definitely exists[1]. Presumably nobody has packaged it for Arch yet; that seems like a thing you could contribute.

[1]: https://github.com/tree-sitter-grammars/tree-sitter-yaml

_ache_•1h ago
It's in the AUR (aur/tree-sitter-yaml), a community-driven repository of Arch Linux packages. Not yet official.

Since it comes from `tree-sitter-grammars/tree-sitter-yaml`, it may be quick to integrate the official repo.

matthew-craig•1h ago
In my emacs configuration, I have the following parsers installed:

awk bash bibtex blueprint c c-sharp clojure cmake commonlisp cpp css dart dockerfile elixir glsl gleam go gomod heex html janet java javascript json julia kotlin latex lua magik make markdown nix nu org perl proto python r ruby rust scala sql surface toml tsx typescript typst verilog vhdl vue wast wat wgsl yaml

johanvts•1h ago
Go is here: https://github.com/tree-sitter/tree-sitter-go Try google, the others are probably out there as well.
jasonjmcghee•1h ago
Most of them are in the language pack (https://github.com/Goldziher/tree-sitter-language-pack)

For others, this is a sub optimal answer, but I’ve played with generating grammars with latest llms and they are surprisingly good at doing this (in a few shots).

That being said, if you’re doing something more serious than syntax highlighting or shipping it in a product, you’ll want to spend more time on it.

zokier•1h ago
https://tree-sitter.github.io/tree-sitter/#parsers

https://github.com/tree-sitter/tree-sitter/wiki/List-of-pars...

FjordWarden•1h ago
This is like the difference between an orange and fruit juice. You can squeeze an orange to extract its juices, but that is not the only thing you can do with it, nor is it the only way to make fruit juice.

I use tree-sitter for developing a custom programming language, you still need an extra step to get from CST to AST, but the overall DevEx is much quicker that hand-rolling the parser.

danielvaughn•1h ago
Every time I get to sing Treesitters praise, I take the opportunity to. I love it so much. I've tried a bunch of parser generators, and the TS approach is so simple and so good that I'll probably never use anything else. The iteration speed lets me get into a zen-like state where I just think about syntax design, and I don't sweat the technical bits.
lowbloodsugar•53m ago
N00b question: Language parsers gives me concrete information, like “com.foo.bar.Baz is defined here”. Does tree sitter do that or does it say “this file has a symbol declaration for Baz” and elsewhere for that file “there is a package statement for ‘com.foo.bar’” and then I have to figure that out?
FjordWarden•33m ago
You have to figure this out for yourself in most cases. Tree sitter does have a query language based on s-expressions, but it is more for questions like "give me all the nodes that are literals", and then you can, for example, render those with in single draw call. Tree sitter has incremental parsing, and queries can be fixed at a certain byte range.
lioeters•47m ago
> extra step to get from CST to AST

Could you elaborate on what this involves? I'm also looking at using tree-sitter as a parser for a new language, possibly to support multiple syntaxes. I'm thinking of converting its parse trees to a common schema, that's the target language.

I guess I don't quite get the difference between a concrete and abstract syntax tree. Is it just that the former includes information that's irrelevant to the semantics of the language, like whitespace?

direwolf20•21m ago
That's correct.
FjordWarden•18m ago
TS returns a tree with nodes, you walk the nodes with a visitor pattern. I've experimented with using tree-sitter queries for this, but for now not found this to be easier. Every syntax will have its own CST but it can target a general AST if you will. At the end they can both be represented as s-expressions and but you need rules to go from one flavour of syntax tree to the other.

AST is just CST minus range info and simplified/generalised lexical info (in most cases).

mattnewport•41m ago
Yeah, you can even use tree-sitter to implement a language server, I've done this for a custom scripting language we use at work.
KlayLay•1h ago
Side note, but thanks for the note about not using AI to write your articles. I'm tired of looking for information online, finding an article that may answer it, and not being sure about the author's integrity (this is so rampant on Medium).
briaoeuidhtns•1h ago
I think the big reason to put syntax highlighting in the language server is you have more info, ex you can highlight symbols imported from a different file in one color for integers and a different for functions
LoganDark•26m ago
You can enrich highlighting using information from the language server, can't you? I think JetBrains does this
mickeyp•57m ago
Tree-sitter is great. It powers Combobulate in Emacs. Structured editing and movement would not have been easily done without it.
Fiveplus•34m ago
>It is possible to use the language server for syntax highlighting. I am not aware of any particularly strong reasons why one would want to (or not want to) do this.

Hmm, the strong reason could be latency and layout stability. Tree-sitter parses on the main thread (or a close worker) typically in sub-ms timeframes, ensuring that syntax coloring is synchronous with keystrokes. LSP semantic tokens are asynchronous by design. If you rely solely on LSP for highlighting, you introduce a flash of unstyled content or color-shifting artifacts every time you type, because the round-trip to the server (even a local one) and the subsequent re-tokenization takes longer than the frame budget.

The ideal hygiene could be something like -> tree-sitter provides the high-speed lexical coloring (keywords, punctuation, basic structure) instantly and LSP paints the semantic modifiers (interfaces vs classes, mutable vs const) asynchronously like 200ms later. Relying on LSP for the base layer makes the editor feel sluggish.

mickeyp•18m ago
That's generally how it works in most editors that support both.

Tree-sitter has okay error correction, and that along with speed (as you mentioned) and its flexible query language makes it a winner for people to quickly iterate on a working parser but also obviously integration into an actual editor.

Oh, and some LSPs use tree-sitter to parse.

mellery451•28m ago
one topic not mentioned is creating refactoring tools. My sense is that LSPs generally have the advantage here because they have the full parsed tree, but I suspect it would be possible to build simple syntactic refactorings in TS with the potential to be both faster and less sensitive to broken syntax.
vivzkestrel•22m ago
- as a guy who is absolutely not familiar with the idea of how code editors work and has to make a browser based code editor, what are the things that you think I should know?

- i got a hint of language server and tree sitter thanks to this wonderfully written post but it is still missing a lot of details like how does the protocol actually look like, what does a standard language server or tree sitter implementation looks like

- what are the other building blocks?

thramp•9m ago
(Hi, I’m on the rust-analyzer team, but I’ve been less active for reasons that are clear in my bio.)

> Language servers are powerful because they can hook into the language’s runtime and compiler toolchain to get semantically correct answers to user queries. For example, suppose you have two versions of a pop function, one imported from a stack library, and another from a heap library. If you use a tool like the dumb-jump package in Emacs and you use it to jump to the definition for a call to pop, it might get confused as to where to go because it’s not sure what module is in scope at the point. A language server, on the other hand, should have access to this information and would not get confused.

You are correct that a language server will generally provide correct navigation/autocomplete, but a language server doesn’t necessarily need to hook into an existing compiler: a language server might be a latency-sensitive re-implementation of an existing compiler toolchain (rust-analyzer is the one I’m most familiar with, but the recent crop of new language servers tend to take this direction if the language’s compiler isn’t query-oriented).

> It is possible to use the language server for syntax highlighting. I am not aware of any particularly strong reasons why one would want to (or not want to) do this.

Since I spent a lot of time in Rust, I’ll use Rust as an example: you can highlight a binding if it’s mutable or style an enum/struct differently. It’s one of those small things that makes a big impact once you get used to it: editors without semantic syntax highlighting (as it is called in the LSP specification) feel like they’re naked to me.