forest.purejs.icu
Open in
urlscan Pro
2603:c020:400a:d000:dc2d:4f96:f5d5:8a00
Public Scan
URL:
https://forest.purejs.icu/
Submission: On March 22 via api from US — Scanned from US
Submission: On March 22 via api from US — Scanned from US
Form analysis
0 forms found in the DOMText Content
THE ROOT OF FOREST DE J.K. [JSR-0001] * Jinser Kafka This is an root tree in my forest. 你好👋。 1. INTRO [JSR-0002] * March 21, 2024 * Jinser Kafka 使用 flake-parts 配置 forester 开发 shell 的 flake.nix,主要内容在 ./nix 目录中。 { description = "Forest de J.K."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; forester = { url = "sourcehut:~jonsterling/ocaml-forester"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-parts.url = "github:hercules-ci/flake-parts"; devshell.url = "github:numtide/devshell"; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; imports = [ inputs.devshell.flakeModule ./nix ]; }; } 这是一棵 idea 树: 2. 一些可能会做的想法 [IDEA-0001] * Jinser Kafka 在此树记录防止遗忘,也可能会保存一些进度或问题。 一些和 neovim 有关的,主要是插件什么的。 2.1. NVIM INSTANCE CHANGE DIFF [IDEA-0002] * March 22, 2024 * Jinser Kafka 每次补全触发 auto-import,或者使用 code action 时候,经常不知道代码中具体发生了什么改变。 想要寻找或者编写一个这样的插件:在 lsp 触发类似 format,auto-import,code action,refactor 等事件的时候,instance 地提示一下什么代码被改变了。 应该可以有几种方式通知:inline diff,message,... 其他的还没想到。 2.2. NVIM LSP DEBUGGER [IDEA-0005] * March 22, 2024 * Jinser Kafka 想要一个能显示 client <=> server 之间交互的 lsp debugger,可能会用 nui 来实现? 主要目的是帮助 HLS 开发和学习下 neovim 的插件怎么开发的。 2.3. NIX IN-REPL EDITOR [IDEA-0003] * March 22, 2024 * Jinser Kafka nix repl 和其他的 repl 一样,都会遇到一个问题:编辑跨行的代码的时候非常困难,我遇到的解决方案大概有这几种。 1. 自动检查多行环境。比如 racket 的 repl 会在按下回车键后,检查括号是否全部匹配,如果还有未匹配的括号,那么他会认为你还没有写完,回车键就会被处理为换行,而不是确认求值;类似的还有 psql,会检查输入语句的末尾是否有分号 ;。这种方式适合容易判断是否截止的语言。 2. 手动标记多行环境。典型的如 ghci,可以使用 :{ ... :} 来手动标记多行环境。 3. 打开一个临时编辑器。一般是使用当前 shell 中的 $EDITOR 打开一个临时文件,在成功退出编辑器后(即 status = 0),将临时文件中的代码复制到当前 repl 中。这样的好处是,编辑器是更适合多行编辑的工具,且能够利用编辑器的高亮,甚至是 LSP 等检查工具。psql 的这个功能就很好用,通过输入 \e 指令来打开编辑器。顺便一提,在 shell (至少 fish)中,按 M-e 也可以原地打开编辑器进行编辑操作。 据我自己所知道的,还没有找到 nix repl 有类似的能力。还没有寻找 issue 或 pr,也许已有人提过。 最好能支持和 psql 一样的 \e 指令,但是 nix repl 的 :e 已经是 Open package or function in $EDITOR 的意思了。 不知道 nix repl 是用什么语言实现的,要是有机会能提个 pr 就好了。 2.4. WI-FI FUCK EVERYBODY [IDEA-0004] * March 22, 2024 * Jinser Kafka 暂时不说了... TABLE OF CONTENTS * ■1. Intro * ■2. 一些可能会做的想法 * ■2.1. Nvim instance change diff * ■2.2. Nvim lsp debugger * ■2.3. Nix in-repl editor * ■2.4. Wi-Fi fuck everybody