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)
Etherpad: https://pad.emacsconf.org/2022-lspbridge
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

Description

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 https://manateelazycat.github.io/emacs/2022/05/12/lsp-bridge.html and https://manateelazycat.github.io/emacs/2022/06/26/why-lsp-bridge-not-use-capf.html (sorry, I'm Chinese Emacser)

Questions or comments? Please e-mail emacsconf-org-private@gnu.org

CategoryCoding