Lapce Docs
Home
  • Introduction
  • Get started
    • Setup
    • Command palette
    • Settings
    • Keybindings
    • Modal editing
    • Remote development
    • Themes
    • Terminal
  • Features
    • Multiple cursor
    • Syntax highlighting
  • Development
    • Architecture
    • Plugin development
    • Theme
Powered by GitBook
On this page
  1. Development

Architecture

PreviousSyntax highlightingNextPlugin development

Last updated 1 year ago

CtrlK
  • Frontend
  • Proxy
  • File Editing
Drawing

Frontend

The frontend uses Floem for the GUI of Lapce.

Proxy

The lapce-proxy sub crate provides the interface between the frontend, and the file system, plugins and LSP servers, so Lapce talks to files, plugins, LSP servers through the proxy. The reason for that is to provide the ability for remote development. In remote development mode, the lapce-proxy binary runs on the remote host, to provide seamless code editing, project management and language interaction .

File Editing

Here is the flow of a typical file editing process. When you open a file in the GUI, lapce-app talks to lapce-proxy which reads the file from local disk and responds with the content of the file. lapce-app stores the file content locally. lapce-proxy receives the change, and applies the change locally which make the file content in sync. When you save the file in the GUI, lapce-app sends the file save request to lapce-proxy, and lapce-proxy saves the file to the local disk.