十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Slint CLI 工具安装指南:slint-lsp 与 slint-viewer 的部署、PATH 配置与源码级能力解析

Slint CLI 工具安装指南:slint-lsp 与 slint-viewer 的部署、PATH 配置与源码级能力解析 Slint CLI 工具安装指南slint-lsp 与 slint-viewer 的部署、PATH 配置与源码级能力解析【免费下载链接】slintSlint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C, JavaScript, or Python apps.项目地址: https://gitcode.com/GitHub_Trending/sl/slint本指南以仓库 ai-plugins/skills/slint/tools-install.md 为核心完整讲解 Slint 官方随版本发布的两个命令行工具slint-lsp语言服务器与slint-viewer文件预览器的安装与使用。无论你是要在编辑器里获得诊断、跳转、格式化能力还是想在终端里快速预览、校验、无头截图一个.slint文件读完本文都能独立完成安装、验证与常见问题排查并理解这两个二进制在仓库源码中的真实组成与能力边界。两个 CLI 二进制分工与定位Slint 每次发布都会随版本携带两个 CLI 二进制它们分别服务于编辑期与预览期两个完全不同的阶段二进制职责典型场景slint-lsp语言服务器LSP提供诊断、悬停提示、跳转到定义、代码格式化任何支持 LSP 协议的编辑器或 AI 助手接入 Slint 语法支持slint-viewer独立渲染.slint文件支持热重载实时预览以及--screenshot无头截图在终端快速预览单个文件、CI 中做编译检查与截图在仓库源码中两者的工程位置分别是 tools/lsp二进制入口为slint-lsp定义于 tools/lsp/Cargo.toml与 tools/viewer二进制入口为slint-viewer定义于 tools/viewer/Cargo.toml。两者的应用方式贯穿于整个 AI 开发工作流编辑.slint文件后用slint-viewer --check做快速编译校验、用--screenshot看渲染效果见 SKILL.md 工作流。安装前提两个二进制必须在 PATH 上无论是编辑器插件、LSP 客户端还是脚本它们都通过PATH环境变量查找这两个命令。如果工具报告找不到slint-lsp或slint-viewer几乎总是安装目录没有被加入PATH而不是工具本身缺失。安装完成后建议立即用which slint-lsp which slint-viewer或slint-viewer --version验证命令可被解析。方式一预编译二进制推荐预编译二进制随每个 Slint 发布版本一同发布无需调用任何 API 即可直接下载。下载地址遵循固定模式https://github.com/slint-ui/slint/releases/latest/download/file需要固定到某个具体版本时把latest换成download/vversion即https://github.com/slint-ui/slint/releases/download/vversion/file其中file为slint-lsp-target或slint-viewer-targettarget的可选值如下target平台 / 架构linux.tar.gzLinux x86_64aarch64-unknown-linux-gnu.tar.gzLinux AArch64armv7-unknown-linux-gnueabihf.tar.gzLinux ARMv7armhfmacos.tar.gzmacOSwindows-x86_64.zipWindows x86_64windows-arm64.zipWindows ARM64下载、解压与安装每个归档解压后得到以工具名命名的目录二进制就在该目录内部。例如在 Linux x86_64 上安装slint-viewercurl -fsSL https://github.com/slint-ui/slint/releases/latest/download/slint-viewer-linux.tar.gz | tar xz install slint-viewer/slint-viewer ~/.local/bin/第二条命令把二进制安装到~/.local/bin/请确保该目录在PATH中。slint-lsp的安装方式完全相同只需把文件名中的slint-viewer替换为slint-lsp。Debian / Ubuntu 运行时依赖在 Debian/Ubuntu 等发行版上slint-viewer使用 winit 窗口后端时依赖一组系统运行库需要先安装sudo apt install -y libx11-xcb1 libxkbcommon0 libinput10 libgbm1libx11-xcb1X11 与 XCB 桥接X11 窗口显示所需libxkbcommon0键盘布局与输入法处理libinput10libinput 输入设备后端libgbm1通用缓冲管理器Generic Buffer ManagementGPU/合成所需。其他发行版请安装对应的等价运行库。若只做--screenshot无头渲染见后文可以不依赖窗口系统但桌面预览场景下这些库缺一不可。方式二cargo install需要 Rust 工具链如果你本机已有 Rust 工具链也可以直接从 crates.io 编译安装cargo install slint-lsp cargo install slint-viewer --features mcp其中slint-viewer的mcpfeature1.18为运行中的.slint文件开启内嵌 MCPModel Context Protocol服务器访问能力供 AI 助手在运行时检查 UI 树、截图、模拟点击与输入。完整用法参见 debugging-and-mcp.md。不需要该能力时完全可以省略--features mcp二进制会更精简cargo install slint-lsp默认即包含预览相关能力无需额外 feature。Cargo 会把编译好的二进制放到$HOME/.cargo/bin。如果你的 Rust 是通过rustup安装的该目录默认已在PATH中若是手工安装 Rust需要自行把$HOME/.cargo/bin追加进PATH。针对尚未发布的master分支代码构建时追加--git参数指向 Slint 的 Git 仓库即可cargo install slint-lsp --git https://github.com/slint-ui/slint cargo install slint-viewer --features mcp --git https://github.com/slint-ui/slint注意--git方式拉取的是开发分支API 与行为可能随主线演进非必要不建议用于生产环境正式项目请优先使用发布版crates.io 或预编译二进制。源码视角slint-viewer 的真实 CLI 能力安装只是起点理解slint-viewer能做什么才能物尽其用。从 tools/viewer/main.rs 的 clap 参数定义可以看到它内置了完整的一套命令参数说明-I include path为其他.slint文件或图片指定包含路径-L librarypath以library/path形式指定library库位置path要加载的.slint文件-表示从标准输入读取--style style name控件风格默认fluent--component name指定要预览的组件默认取文件中最后一个导出的组件--backend backend指定渲染后端--auto-reload监视文件系统变更时自动热重载--load-data json file从 JSON 文件加载属性-为 stdin--save-data json file退出时把属性值写入 JSON-为 stdout--screenshot image file渲染组件为图片后退出格式随扩展名.png/.jpg-输出 PNG 到 stdout--size WxH指定截图窗口尺寸逻辑像素如360x800缺省用组件首选尺寸1.18--check只编译并输出诊断信息不打开窗口1.17有错误退出码为 1否则为 0警告仍会打印--on callback handler指定回调处理器回调触发时执行 shell 命令$1等依次替换回调参数--remote/--remote-address/--pairing-code/--no-pairing远程预览模式监听 WebSocket 等待 LSP 连接用于编辑器联调这些参数在 SKILL 工作流中直接构成日常操作闭环slint-viewer --check ui/main.slint做编译检查、slint-viewer --screenshot渲染效果图、slint-viewer --auto-reload ui/main.slint让用户边改边看见 SKILL.md。从 tools/viewer/Cargo.toml 可以看到slint-viewer的 feature 体系默认启用backend-default、renderer-femtovg、renderer-software与remotemcpfeature 直接映射到slint-interpreter/mcp注释明确要求运行时设置SLINT_MCP_PORT此外还有backend-qt、backend-linuxkms、renderer-skia、renderer-vello、gettext国际化等一系列可选开关。这意味着预编译发布版已经内置了mcp而cargo install必须显式加--features mcp——这正是两种安装方式行为差异的源码根因。源码视角slint-lsp 的能力构成slint-lsp位于 tools/lsp其工程名为slint-lspWindows 上为slint-lsp.exe入口为 tools/lsp/main.rs同时以 WASM 形式提供slint_lsp_wasm库tools/lsp/Cargo.toml。从 tools/lsp/README.md 可知它基于标准 LSP 协议提供诊断diagnostics、代码补全completion、跳转定义goto definition与实时预览live-previewSlint 的代码格式化能力也内置于此。值得注意的源码细节tools/lsp/Cargo.tomlpreviewfeature 组合了preview-engine、preview-builtin、preview-external、preview-remote其中preview-remote支持通过 WebSocket 连接远程预览与slint-viewer --remote正好构成一对编辑器 ↔ 远程设备的联调通道后端与渲染器 featurebackend-*、renderer-*与slint-viewer保持一致默认启用backend-default、renderer-femtovg、renderer-software。因此对大多数编辑器用户而言直接使用官方预编译的slint-lsp即可获得完整能力若想精简体积或针对特定后端构建则需要按上述 feature 自行裁剪。安装后验证与常见问题安装完成后建议按以下顺序自检# 1. 确认命令可被解析 which slint-lsp which slint-viewer # 2. 快速编译检查一个 .slint 文件1.17 slint-viewer --check ui/main.slint # 3. 无头截图1.17不依赖 X/Wayland slint-viewer --screenshot out.png ui/main.slint常见问题与对应处理工具提示找不到slint-lsp/slint-viewer安装目录不在PATH。预编译方式把解压后的目录如~/.local/bin加入PATHcargo 方式确认$HOME/.cargo/bin在PATH中。Linux 上窗口无法打开或崩溃检查 Debian/Ubuntu 依赖libx11-xcb1 libxkbcommon0 libinput10 libgbm1是否齐全或改用无头渲染。--features mcp报 unknown feature说明本地 Slint 版本过旧该能力 1.18 可用且cargo install安装的 crates.io 版本才需要显式声明预编译发布版已内置请升级 Slint 版本。截图报take_snapshot() called on window with invalid size组件首选尺寸为 0给根元素显式width/height或用--size WIDTHxHEIGHT1.18强制指定。延伸让 AI 助手直接调试运行中的应用两个工具都装好之后真正的进阶玩法是把slint-viewer作为 MCP 服务器端使用设置环境变量SLINT_MCP_PORT9315后启动即可通过http://127.0.0.1:9315/mcp端点暴露list_windows、get_element_tree、find_elements_by_id、take_screenshot、click_element、dispatch_key_event等工具让 AI 助手在不写任何宿主代码的情况下遍历 UI 树、截图并模拟交互。这部分完整机制包括SLINT_EMIT_DEBUG_INFO编译期开关、SLINT_BACKENDheadless无头运行、curl 调用示例详见 debugging-and-mcp.md——它正是tools-install.md中--features mcp指向的下一站。【免费下载链接】slintSlint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C, JavaScript, or Python apps.项目地址: https://gitcode.com/GitHub_Trending/sl/slint创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表