`g:rustfmt_autosave` doesn't save folds on `:w`

未关闭
#453 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
vim
领域
tooling

调研方向

Start by locating the g:rustfmt_autosave save hook and the :RustFmt implementation in the Vim plugin. Reproduce the report by opening a fold in a Rust file and saving with autosave enabled, then trace how formatting affects the buffer's folds. Done when saving preserves the open fold; the payload names no test file.

由索引模型根据 Issue 内容生成。

描述

Hi,
Currently, :RustFmt discards all folds when it autoformats any files.

rust.vim version.

master

Steps to reproduce:

  1. Set g:rustfmt_autosave to true in vim config.
  2. Open any rust file and open a fold.
  3. Save that file using :w.
  4. You will notice that fold has been discarded.

Expected vs. actual behavior:

Ideally, these folds should be saved.

Related issues/issues that can be referenced

https://github.com/fatih/vim-go/pull/691

RustInfo

rust.vim Global Variables:
let g:ftplugin_rust_source_path = v:null
let g:loaded_syntastic_rust_cargo_checker = v:null
let g:loaded_syntastic_rust_filetype = v:null
let g:loaded_syntastic_rust_rustc_checker = v:null
let g:rust_bang_comment_leader = v:null
let g:rust_cargo_avoid_whole_workspace = v:null
let g:rust_clip_command = v:null
let g:rust_conceal = v:null
let g:rust_conceal_mod_path = v:null
let g:rust_conceal_pub = v:null
let g:rust_fold = v:null
let g:rust_last_args = v:null
let b:rust_last_args = []
let g:rust_last_rustc_args = v:null
let b:rust_last_rustc_args = []
let g:rust_original_delimitMate_excluded_regions = v:null
let g:rust_playpen_url = v:null
let g:rust_prev_delimitMate_quotes = v:null
let g:rust_recent_nearest_cargo_tol = v:null
let g:rust_recent_root_cargo_toml = v:null
let g:rust_recommended_style = v:null
let g:rust_set_conceallevel = v:null
let g:rust_set_conceallevel=1 = v:null
let g:rust_set_foldmethod = v:null
let g:rust_set_foldmethod=1 = v:null
let g:rust_shortener_url = v:null
let g:rustc_makeprg_no_percent = v:null
let g:rustc_path = v:null
let g:rustfmt_autosave = 0
let g:rustfmt_autosave_if_config_present = v:null
let g:rustfmt_command = 'rustfmt'
let g:rustfmt_emit_files = 1
let g:rustfmt_fail_silently = 0
let g:rustfmt_options = ''
let g:syntastic_extra_filetypes = ['rust']
let g:syntastic_rust_cargo_fname = v:null
rustfmt 1.4.37-stable (2a3635d 2021-05-04)
rustc 1.53.0 (53cb7b09b 2021-06-17)
cargo 1.53.0 (4369396ce 2021-04-27)

NVIM v0.6.0-dev+1639-g50b30de20
Build type: Debug
LuaJIT 2.1.0-beta3
主要语言
Vim Script
星标
4.2k
派生
323
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

rust-lang/rust.vim 的其他 Issue

查看 rust-lang/rust.vim 的全部 Issue

相似的 Issue

更多 DevTools Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。