lsp-bridge: a smooth-as-butter asynchronous LSP client

Andy Stewart and Matthew Zeng (IRC: Andy: manateelazycat)

The following image shows where the talk is in the schedule for Sat 2022-12-03. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.

Schedule for Saturday Saturday 9:00- 9:05 Saturday opening remarks sat-open 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs) journalism 9:45- 9:55 Back to school with Emacs school 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode handwritten 10:45-11:05 Writing and organizing literature notes for scientific writing science 11:25-11:35 The Emacs Buddy initiative buddy 1:00- 1:20 Attending and organizing Emacs meetups meetups 1:40- 1:55 Linking personal info with Hyperbole implicit buttons buttons 2:15- 2:40 Real estate and Org table formulas realestate 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot health 3:45- 4:05 Edit live Jupyter notebook cells with Emacs jupyter 4:50- 4:55 Saturday closing remarks sat-close 10:00-10:15 Tree-sitter beyond syntax highlighting treesitter 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client lspbridge 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for asmblox 11:25-11:35 Emacs should become a Wayland compositor wayland 1:00- 1:25 Using SQLite as a data source: a framework and an example sqlite 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents mail 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint 3:35- 3:40 Bidirectional links with eev eev 3:50- 3:55 Short hyperlinks to Python docs python 4:05- 4:35 Haskell code exploration with Emacs haskell 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM

Format: 20-min talk followed by IRC Q&A (#emacsconf-dev)
Discuss on IRC: #emacsconf-dev
Status: Now playing on the conference livestream

Times in different timezones:
Saturday, Dec 3 2022, ~10:25 AM - 10:45 AM EST (US/Eastern)
which is the same as:
Saturday, Dec 3 2022, ~9:25 AM - 9:45 AM CST (US/Central)
Saturday, Dec 3 2022, ~8:25 AM - 8:45 AM MST (US/Mountain)
Saturday, Dec 3 2022, ~7:25 AM - 7:45 AM PST (US/Pacific)
Saturday, Dec 3 2022, ~3:25 PM - 3:45 PM UTC
Saturday, Dec 3 2022, ~4:25 PM - 4:45 PM CET (Europe/Paris)
Saturday, Dec 3 2022, ~5:25 PM - 5:45 PM EET (Europe/Athens)
Saturday, Dec 3 2022, ~8:55 PM - 9:15 PM IST (Asia/Kolkata)
Saturday, Dec 3 2022, ~11:25 PM - 11:45 PM +08 (Asia/Singapore)
Sunday, Dec 4 2022, ~12:25 AM - 12:45 AM JST (Asia/Tokyo)
Find out how to watch and participate


Emacs built-in single-threaded mechanism and GC design will cause Emacs to freeze when receiving oversized LSP data.

Lsp-bridge uses python's threading technology to build caches that bridge Emacs and LSP server. Lsp-bridge will provide a smooth completion experience without compromise to slow down emacs' performance.

lsp-bridge is completely asynchronous, to the point that even the completion popup is controlled by lsp-bridge. It offloads all the computation to an external python process, and hence the emacs session itself stays always responsive, as it has very few things to do.

lsp-bridge has now supported 39 LSP servers and all kinds completion backend: include LSP、 TabNine、 Citre、 Elisp、 Search Words、 Path、 Yasnippet、 Tempel、 Telegra、 English etc, it just works pretty well out of the box.

Related design, please check and (sorry, I'm Chinese Emacser)

Questions or comments? Please e-mail