Core模块
LazyHandler手动类和继承机制实现
在~/lua/lazy/core/handler/init.lua文件中,定义了LazyHandler类。handler类中定义了四个具体的子类型,分别是keys、event、cmd和ft。分别在cmd.lua、event.lua、ft.lua和keys.lua文件中定义了具体的handler实现。
在~/lua/lazy/core/handler/init.lua文件中,定义了LazyHandler类。handler类中定义了四个具体的子类型,分别是keys、event、cmd和ft。分别在cmd.lua、event.lua、ft.lua和keys.lua文件中定义了具体的handler实现。
在项目开发中很常用的工作流,将修改拆分为多个清晰的提交,这样在回退和排查问题时也更加容易,代码review也更加好理解。
采用git add -p, 根据提示分成多个小块add修改。
helix-gpt是个language server,通过调用大语言模型,实现对代码的智能提示和编辑,由于是使用大模型处理,所有和语言无关,所有语言都可以使用。helix本身内置languageserver协议,因为都采用了lsp协议。其实vim、vscode也是可以用的,我们看到的Github Copilot、文心快码、通义灵码等应用都是这样实现的。
我每天早上都会打开Github的Trendings板块,了解最新的动态,我相信这是个还不错的习惯。遇到感兴趣的项目我会打开看看源码,学习一下大佬们的写法和实现。
修改github.com/xxx/yyy链接为github1s.com/xxx/yyy,就可以在浏览器打开vscode类似界面阅读代码了。
今天分享的是quill,一个异步低延迟的高效日志库实现。
使用aya支持CO-RE(编译一次,在不同版本的内核上运行程序)。aya 库(用户空间侧)可以用来加载有 relocations 的 BPF 程序,但用 Rust 语言编写 BPF 程序的 aya-ebpf 库(内核侧)。所以如果无法避免 relocations 等问题时,就需要结合c写内核,rust写用户空间加载。(比如:还不支持 relocations 相关的 bpf_core_read 或编译器的 __builtin_preserve_access_index 函数)。参考
c++ std::sort函数是经常被使用到的,但是不知道大家注意没有,定义的Compare函数是需要满足一定条件的。这个条件就是:strict weak ordering。