Commit graph

39 commits

Author SHA1 Message Date
Barrett Ruth
e2cd1e66cf
refactor: revert canola namespace to oil and remove vim.g config (#120)
Some checks are pending
quality / changes (push) Waiting to run
quality / Lua Format Check (push) Blocked by required conditions
quality / Lua Lint Check (push) Blocked by required conditions
quality / Lua Type Check (push) Blocked by required conditions
quality / Markdown Format Check (push) Blocked by required conditions
test / Test (Neovim nightly) (push) Waiting to run
test / Test (Neovim stable) (push) Waiting to run
* refactor: revert module namespace from canola back to oil

Problem: the canola rename creates unnecessary friction for users
migrating from stevearc/oil.nvim — every `require('oil')` call and
config reference must change.

Solution: revert all module paths, URL schemes, autocmd groups,
highlight groups, and filetype names back to `oil`. The repo stays
`canola.nvim` for identity; the code is a drop-in replacement.

* refactor: remove `vim.g.oil` declarative config

Problem: the `vim.g.oil` configuration path was added prematurely.
It adds a second config entrypoint before the plugin has stabilized
enough to justify it.

Solution: remove `vim.g.oil` support from `plugin/oil.lua`,
`config.setup()`, docs, and tests. Users configure via
`require("oil").setup({})`.
2026-03-10 22:49:56 -04:00
Barrett Ruth
0d3088f57e
refactor: rename oil to canola across entire codebase (#70)
Problem: the codebase still used the upstream \`oil\` naming everywhere —
URL schemes, the \`:Oil\` command, highlight groups, user events, module
paths, filetypes, buffer/window variables, LuaCATS type annotations,
vimdoc help tags, syntax groups, and internal identifiers.

Solution: mechanical rename of every reference. URL schemes now use
\`canola://\` (plus \`canola-ssh://\`, \`canola-s3://\`, \`canola-sss://\`,
\`canola-trash://\`, \`canola-test://\`). The \`:Canola\` command replaces
\`:Oil\`. All highlight groups, user events, augroups, namespaces,
filetypes, require paths, type annotations, help tags, and identifiers
follow suit. The \`upstream\` remote to \`stevearc/oil.nvim\` has been
removed and the \`vim.g.oil\` deprecation shim dropped.
2026-03-05 14:50:10 -05:00
Barrett Ruth
86f553cd0a
build: replace luacheck with selene, add nix devshell and pre-commit (#20)
* build: replace luacheck with selene

Problem: luacheck is unmaintained (last release 2018) and required
suppressing four warning classes to avoid false positives. It also
lacks first-class vim/neovim awareness.

Solution: switch to selene with std='vim' for vim-aware linting.
Replace the luacheck CI job with selene, update the Makefile lint
target, and delete .luacheckrc.

* build: add nix devshell and pre-commit hooks

Problem: oil.nvim had no reproducible dev environment. The .envrc
set up a Python venv for the now-removed docgen pipeline, and there
were no pre-commit hooks for local formatting checks.

Solution: add flake.nix with stylua, selene, and prettier in the
devshell. Replace the stale Python .envrc with 'use flake'. Add
.pre-commit-config.yaml with stylua and prettier hooks matching
other plugins in the repo collection.

* fix: format with stylua

* build(selene): configure lints and add inline suppressions

Problem: selene fails on 5 errors and 3 warnings from upstream code
patterns that are intentional (mixed tables in config API, unused
callback parameters, identical if branches for readability).

Solution: globally allow mixed_table and unused_variable (high volume,
inherent to the codebase design). Add inline selene:allow directives
for the 8 remaining issues: if_same_then_else (4), mismatched_arg_count
(1), empty_if (2), global_usage (1). Remove .envrc from tracking.

* build: switch typecheck action to mrcjkb/lua-typecheck-action

Problem: oil.nvim used stevearc/nvim-typecheck-action, which required
cloning the action repo locally for the Makefile lint target. All
other plugins in the collection use mrcjkb/lua-typecheck-action.

Solution: swap to mrcjkb/lua-typecheck-action@v0 for consistency.
Remove the nvim-typecheck-action git clone from the Makefile and
.gitignore. Drop LuaLS from the local lint target since it requires
a full language server install — CI handles it.
2026-02-21 23:52:27 -05:00
Steven Arcangeli
d7c61c7084 fix: silent handling when buffer has no oil adapter (#573) 2025-03-04 12:57:01 -08:00
Steven Arcangeli
abbfbd0dbc lint: fix typecheck warning 2025-02-11 21:07:07 -08:00
Steven Arcangeli
8d11a2abf3 fix: error when non-current oil buffer has validation errors (#561) 2025-01-22 08:26:28 -08:00
Steven Arcangeli
1f5b002270 refactor: rename action preview window to 'confirmation' window 2024-11-10 15:57:27 -08:00
Steven Arcangeli
581c729805 doc: disable some type warnings from new LuaLS release 2024-09-30 22:10:36 -07:00
csponge
f60bb7f793
feat: config option to disable lsp file methods (#477)
* added config option to enable or disable lsp_file_methods

* refactor: rename enable -> enabled

---------

Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
2024-09-11 19:41:46 -07:00
Steven Arcangeli
349bca8c3e fix: process deletes in dir before moving dir 2024-08-25 20:46:46 -07:00
Steven Arcangeli
3b3a6b23a1 fix(windows): treat both backslash and frontslash as path separators (#336) 2024-04-23 21:04:31 -07:00
Steven Arcangeli
354c53080a fix: duplicate create actions (#334) 2024-04-19 17:05:19 -04:00
Steven Arcangeli
fa3820ebf1 feat: can restore Oil progress window when minimized 2024-04-19 16:31:42 -04:00
Steven Arcangeli
e462a34465 feat: add user autocmds before and after performing actions (#310) 2024-03-17 19:50:31 -07:00
Steven Arcangeli
bcfe7d1ec5 feat: experimental option to watch directory for changes (#292) 2024-02-19 23:27:27 -08:00
Steven Arcangeli
a1af7a1b59 fix: diagnostic float would not open if scope=cursor (#275) 2024-01-14 12:35:35 -08:00
Steven Arcangeli
250e0af7a5
feat: support all LSP workspace file operations (#264) 2023-12-23 14:08:11 -08:00
Steven Arcangeli
05cb8257cb fix: bug copying file multiple times 2023-11-19 23:58:40 -08:00
Steven Arcangeli
4df43ad5f5 test: fix flaky tests 2023-11-19 21:02:06 -08:00
Steven Arcangeli
af13ce333f fix: quit after mutations when :wq or similar (#221) 2023-11-13 10:46:08 -08:00
Steven Arcangeli
6175bd6462
feat: trash support for linux and mac (#165)
* wip: skeleton code for trash adapter

* refactor: split trash implementation for mac and linux

* fix: ensure we create the .Trash/$uid dir

* feat: code complete linux trash implementation

* doc: write up trash features

* feat: code complete mac trash implementation

* cleanup: remove previous, terrible, undocumented trash feature

* fix: always disabled trash

* feat: show original path of trashed files

* doc: add a note about calling actions directly

* fix: bugs in trash implementation

* fix: schedule_wrap in mac trash

* doc: fix typo and line wrapping

* fix: parsing of arguments to :Oil command

* doc: small documentation tweaks

* doc: fix awkward wording in the toggle_trash action

* fix: warning on Windows when delete_to_trash = true

* feat: :Oil --trash can open specific trash directories

* fix: show all trash files in device root

* fix: trash mtime should be sortable

* fix: shorten_path handles optional trailing slash

* refactor: overhaul the UI

* fix: keep trash original path vtext from stacking

* refactor: replace disable_changes with an error filter

* fix: shorten path names in home directory relative to root

* doc: small README format changes

* cleanup: remove unnecessary preserve_undo logic

* test: add a functional test for the freedesktop trash adapter

* test: more functional tests for trash

* fix: schedule a callback to avoid main loop error

* refactor: clean up mutator logic

* doc: some comments and type annotations
2023-11-05 12:40:58 -08:00
Steven Arcangeli
f72b9b2637 format: auto sort requires 2023-10-08 23:36:59 -07:00
Steven Arcangeli
8f3c1d2d2e feat: add support for LSP willRenameFiles (#184) 2023-10-01 16:41:51 -07:00
Steven Arcangeli
4bad15909f format: apply stylua 2023-08-25 19:02:22 -07:00
Steven Arcangeli
f86d49446a fix: data loss bug when move + delete (#162) 2023-08-25 18:56:30 -07:00
Steven Arcangeli
e45aeebc2b types: update type annotations for LuaLS 3.7 2023-08-24 09:15:06 -07:00
Steven Arcangeli
8f7807946a fix: remaining type errors 2023-08-13 13:32:35 -07:00
Steven Arcangeli
47c7737618 fix: type annotations and type errors 2023-08-12 20:32:52 -07:00
Steven Arcangeli
4a4e0f4013 refactor: small perf win by eliminating string object keys 2023-06-25 22:44:44 -07:00
Steven Arcangeli
d0efcc0c10 cleanup: remove disclaimer before saving files
Oil has been around for a few months now and there haven't been any
reports of unexpected filesystem operations.
2023-05-07 09:08:44 -07:00
Steven Arcangeli
6b05c2e913 feat: prompt user to save changes before editing moved file/dir (#93) 2023-05-07 08:07:08 -07:00
Steven Arcangeli
273c2cecbf feat: can cancel out of progress window 2023-03-29 18:43:56 -07:00
Steven Arcangeli
d631d9fc5a fix: new oil buffers are nomodifiable during mutation processing 2023-03-29 18:42:48 -07:00
Steven Arcangeli
0b2a4ddde1 refactor: only gc oil buffers once all oil bufs are hidden
Previously we were gc-ing all hidden oil buffers 2 seconds after they
were hidden. I think this is a little too magical, and interferes with
some expected vim behavior (ctrl-o/i). If people want the old behavior,
we can expose the "GC hidden buffers" function via the API.

We're also changing the "rerender visible oil buffers" logic, because
previously that would delete hidden oil buffers. Now it simply marks
them as dirty, and they will be rerendered during the next BufEnter.
2023-02-24 07:55:39 -08:00
Steven Arcangeli
ca4da68aae feat: builtin support for editing files over ssh (#27) 2023-01-18 10:25:22 -08:00
Steven Arcangeli
2e6d68453f fix: restore modified state of current buffer if actions are canceled (#6) 2023-01-03 21:48:49 -08:00
Steven Arcangeli
e58f347c67 fix: ignore errors when unlocking buffers 2023-01-03 09:12:41 -08:00
Steven Arcangeli
0d6ee144d2 fix: unlock buffers if we cancel the actions (#4) 2023-01-02 10:44:16 -08:00
Steven Arcangeli
fefd6ad5e4 feat: first draft 2023-01-02 01:34:53 -08:00