garbage-day.nvim: 智能的Neovim LSP内存管理工具
项目简介
garbage-day.nvim 是一款专为 Neovim 设计的插件,扮演着LSP客户端的智能垃圾收集器角色,自动关闭不活动的语言服务器进程以释放内存,从而优化开发环境的性能。
目录结构及介绍
garbage-day.nvim 的项目结构清晰,便于理解和自定义:
garbage-day.nvim
├── lua # 主要的Lua源码目录,包含了插件的核心逻辑
│ └── garbage-day.lua # 核心模块,实现了LSP客户端管理功能
├── README.md # 插件的说明文档,包含安装步骤、配置选项等重要信息
├── LICENSE # 许可证文件,该项目采用GPLv3许可证
└── ... # 可能包括其他配置或辅助文件
启动文件介绍
此插件的设计融合了Neovim的加载机制,并不需要直接手动启动文件。为了启用garbage-day.nvim,您需要通过Neovim的插件管理系统进行配置。通常,如果您使用的是如packer.nvim
或vim-plug
这类流行的插件管理器,配置将类似于以下形式置于您的init.vim或 nvim config 中:
call plug#begin('~/.config/nvim/plugged')
Plug 'Zeioth/garbage-day.nvim', { 'do': ':UpdateRemotePlugins' }
call plug#end()
-- 配置garbage-day.nvim
if exists('g:loaded_garbage_day') && g:loaded_garbage_day
let g:garbage_day_config = {
\ 'aggressive_mode': 0,
\ 'excluded_lsp_clients': [''], -- 可按需排除某些LSP客户端
\ 'grace_period': 900, -- 设置不失焦后多久停止单位秒
\ 'wakeup_delay': 0 -- 自定义延迟唤醒LSP的时间
\ }
endif
这段配置确保了插件在Neovim启动时被正确加载和初始化。
配置文件介绍
garbage-day.nvim的主要配置是通过全局变量g:garbage_day_config
来设置的,您可以在Neovim的配置文件(通常是init.vim或init.lua)中进行调整。以下是关键配置项的简述:
- aggressive_mode: 是否开启激进模式,立即停止所有非当前缓冲区的LSP客户端。
- excluded_lsp_clients: 列表形式,指定哪些LSP客户端不受此插件影响。
- grace_period: Neovim失去焦点后的等待时间(秒),在此期间不会关闭LSP客户端。
- wakeup_delay: 将鼠标移回时,延迟多少毫秒后再重启LSP,防止误触。
- notifications: 控制是否显示触发垃圾回收的通知。
- retries: 尝试重启LSP客户端的次数。
- timeout: 每次尝试操作的超时时间(毫秒)。
通过合理调整上述配置项,您可以使garbage-day.nvim更好地适应个人的开发习惯和需求,达到更高效的内存管理。