canola.nvim/spec
Barrett Ruth e387a57c0e
feat(config): add per-host/bucket extra args for SSH, S3, and FTP (#171)
* fix(view): reapply column highlights after paste and buffer edits

Problem: Column extmarks (icon color, per-character permissions) are
applied via `util.set_highlights` only during `render_buffer`. Neovim
does not duplicate extmarks on yank/paste, so lines inserted via `yyp`
or `p` render without any column highlights.

Solution: Store `col_width` and `col_align` in `session[bufnr]` after
each render. Add `M.reapply_highlights` which re-parses all buffer
lines, reconstructs the column chunk table, and re-applies extmarks via
`util.set_highlights`. Wire it to a `TextChanged` autocmd (guarded by
`_rendering[bufnr]` to skip oil's own `nvim_buf_set_lines` calls).

* fix(view): resolve LuaLS warnings in `reapply_highlights`

* feat(config): add per-host/bucket extra args for SSH, S3, and FTP

Problem: `extra_scp_args`, `extra_s3_args`, and `extra_curl_args` are
global — there's no way to pass adapter-specific args only to a single
host or bucket (e.g. `-O` for a Synology NAS that requires legacy SCP
protocol, or `--endpoint-url` for an R2 bucket).

Solution: add `ssh_hosts`, `s3_buckets`, and `ftp_hosts` config tables
that map exact hostnames/bucket names to per-target arg lists. Per-target
args are appended after the global args at call time. The `scp()` helper
in `ssh.lua` accepts a `hosts` list so cross-host copies deduplicate
host lookups. `create_s3_command` in `s3fs.lua` extracts the bucket from
the command args with no call-site changes needed. `resolved_curl_args`
in `ftp.lua` is called by both `curl()` and `ftpcmd()`.

Based on: stevearc/oil.nvim#607
2026-03-18 12:40:32 -04:00
..
altbuf_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
close_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
config_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
files_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
ftp_spec.lua feat(ftp): add FTP/FTPS adapter via curl (#167) 2026-03-17 23:47:20 -04:00
manual_progress.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
minimal_init.lua fix(test): resolve busted migration test isolation issues (#25) 2026-02-22 15:39:20 -05:00
move_rename_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
mutator_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
parser_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
path_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
per_host_args_spec.lua feat(config): add per-host/bucket extra args for SSH, S3, and FTP (#171) 2026-03-18 12:40:32 -04:00
preview_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
regression_spec.lua fix(view): prevent backspace from deleting into prefix area (#135) 2026-03-15 13:39:32 -04:00
select_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
test_util.lua fix(test): resolve trash_spec.lua flakes from leaked mutation state (#163) 2026-03-17 11:47:01 -04:00
tmpdir.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
trash_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
url_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
util_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00
win_options_spec.lua refactor: revert canola namespace to oil and remove vim.g config (#120) 2026-03-10 22:49:56 -04:00