当前位置:首页 > 下载列表 > Magic Racket

Magic Racket 0.6.7

新的介绍内容:MagicRacket:VSCode的最佳Racket扩展,支持LSP和REPLMagicRacket是为VSCode开发的Racket扩展,旨在提供最佳的Racket编程体验。通过支持语言服务器协议(LSP),MagicRacket能够为用户提供包括跳转定义、悬停信息、代码格式化等高级功能,使其成为VSCode中最强大的Racket扩展。安装设置安装MagicRack
分类:   下载/工具 · 工具软件 来源:  点击进入 版本:  0.6.7
日期:  2025-06-30 人气:   大小:  
标签:   keybindings snippet REPL scheme lisp racket __ext_rkt drracket
点击下载 相关下载
功能介绍

新的介绍内容:

Magic Racket:VS Code的最佳Racket扩展,支持LSP和REPL

Magic Racket是为VS Code开发的Racket扩展,旨在提供最佳的Racket编程体验。通过支持语言服务器协议(LSP),Magic Racket能够为用户提供包括跳转定义、悬停信息、代码格式化等高级功能,使其成为VS Code中最强大的Racket扩展。

安装设置

  1. 安装Magic Racket:从VS Code扩展市场或Open VSX Registry(如果使用VS Codium)安装。

  2. 确保raco在您的路径中:请查看故障排除部分。

  3. 安装racket-langserver:在终端中运行以下命令:

     raco pkg install racket-langserver

    或更新它:

     raco pkg update racket-langserver

    如果您不想使用语言服务器,可以在配置文件中设置"magicRacket.languageServer.enabled": false。但请注意,这样做将无法使用自动完成、格式化等“智能”功能。

  4. 在WSL或无头Linux服务器上运行VSCode:请查看下面的故障排除部分。

功能概览

Magic Racket提供了以下功能:

  • 支持Racket LSP:通过racket-langserver提供跳转定义、悬停信息、格式化等功能。
  • 几乎完整的Racket语法支持:包括字节字符串、正则表达式、定义子句、向量等。
  • 标准函数高亮:支持#lang racket中的所有标准函数高亮。
  • 优化Racket编写体验:调整VS Code的多种设置,提供最佳的Racket编写体验。

同时,Magic Racket不会:

  • 提供无用的代码片段
  • 为了色彩而进行无意义的颜色化
  • 尝试做所有事情。我们专注于LSP和其他包可以处理的内容。

LSP支持

Magic Racket现已支持racket-langserver,当前功能包括:

  • 错误下划线
  • 跳转定义
  • 查找引用
  • 悬停信息

我们正在努力提供更多详细信息,请持续关注!

语法高亮

下图展示了使用流行Racket VS Code扩展(左图)和Magic Racket(右图)对测试文件进行高亮的对比。

语法高亮对比

如图所示,Magic Racket力求正确和一致,并支持大多数语言功能。在许多方面,该扩展受到了DrRacket高亮的启发,但在某些方面,它旨在不那么简约。

REPL支持

您可以通过编辑器右上角的图标或VS Code的命令控制台加载和执行文件。按Cmd Shift P(Linux或Windows上为Ctrl Shift P)打开所有命令列表,然后通过输入搜索。Magic Racket的所有命令都以Racket:为前缀,以便更容易搜索。

在Magic Racket中,每个文件都有自己的REPL,每次使用Racket: Load file in REPL命令时都会加载。您可以选择为Racket: Run file in terminal也模拟此行为,或者在单一输出终端中运行所有文件。

REPL展示

Magic Racket添加的命令列表:

  • Racket: Execute selection in REPL:在REPL中执行选定内容。也可以通过右键点击选定内容或使用快捷键Alt Enter执行。
  • Racket: Load file in REPL:将当前文件加载到其REPL中,如果文件尚未有REPL,则创建一个新REPL。在右上角有其图标。
  • Racket: Run file in terminal:在终端中运行整个文件,脱离REPL环境。根据用户设置,终端将在所有文件之间共享(默认),或者属于文件本身。
  • Racket: Open the REPL for the current file:显示当前文件所属的REPL,或者如果文件尚未有REPL,则打开一个新REPL。
  • Racket: Show the output terminal for the current file:与上面的命令类似,此命令显示当前文件的输出终端。

您可以在设置中设置REPL和输出终端的名称。

次要QoL功能

这些功能虽然不是革命性的,但确实有助于提高体验:

  • 您可以通过包含的代码片段lmb或快捷键Option \(Windows和Linux上为Alt \)编写λ(lambda)。
  • VS Code正确识别Racket中的“单词”,意味着使用Option Left和Option Right(Windows和Linux上为Ctrl Left和Ctrl Right)在单词之间移动按预期工作,双击选择单词也是如此。

配置

Magic Racket的选项可以在VSCode首选项中的Magic Racket部分找到。

如果您想仅为Racket更改某些VSCode选项(例如,如果您不喜欢预定义的编辑器标尺),可以通过在settings.json中直接添加到[racket]部分来实现:

"[racket]": {
    "editor.rulers": [],
    // 一些进一步的Racket特定配置
}

故障排除

GTK和其他GUI依赖

如果您在Windows上使用Magic Racket,尤其是Docker或WSL下,您可能会遇到关于GTK或其他缺少动态库的错误。这是由langserver依赖GTK来正常运行引起的,请查看问题https://github.com/Eugleo/magic-racket/issues/51以获取解决方案。

在Linux上也可能遇到类似问题,尤其是在您的Racket安装通过Snap或类似风格的替代包装进行沙箱化时。请查看https://github.com/Eugleo/magic-racket/issues/109以获取更多信息。这些问题可能表明包装问题,因此您可能需要尝试不使用像Snap这样的沙箱层来安装Racket。

content-length头

在Linux和WSL上,有时会出现关于头部需要具有content-length属性的错误。有关修复方法,请查看问题https://github.com/Eugleo/magic-racket/issues/77。

正确设置raco

我们需要raco来安装语言服务器包。好消息是,raco在安装Racket时会自动安装。在MacOS上,它可以在/Applications/[Racket文件夹]/bin目录中找到,据说在Windows上,它直接在Racket安装目录中。

然而,在安装后,您的计算机并不知道raco命令在哪里,因此您需要执行以下任一操作:

  • (推荐)添加raco所在的目录(Unix的说明,以及Windows上的PowerShell类似操作)。

  • 首先移动到raco所在的目录(例如使用cd),然后通过在raco命令前加上./(Unix)或.\(Windows)来运行它,如下所示:

      ./raco pkg update racket-langserver

    或在Windows上:

      .\raco pkg update racket-langserver

发布说明

请查看变更日志以获取最新更新的信息。

版本声明
本文转载于:https://marketplace.visualstudio.com/items?itemName=evzen-wybitul.magic-racket 如有侵犯,请联系study_golang@163.com删除
查看更多
课程推荐
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    204次学习
  • MySQL数据管理之备份恢复案例解析视频教程
    MySQL数据管理之备份恢复案例解析视频教程
    《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
    160次学习
  • MySQL索引优化解决方案
    MySQL索引优化解决方案
    本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
    182次学习
  • 极客学院Docker视频教程
    极客学院Docker视频教程
    Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
    243次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    127次学习
  • JavaScript极速入门
    JavaScript极速入门
    本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......
    431次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码