Skip to content

Commit 58fe320

Browse files
authored
Merge pull request #237 from Isrothy/deprecateapi
Deprecateapi
2 parents b202c51 + 766932f commit 58fe320

File tree

29 files changed

+842
-446
lines changed

29 files changed

+842
-446
lines changed

README.md

Lines changed: 117 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ With Lazy:
110110
```lua
111111
---@module "neominimap.config.meta"
112112
{
113-
"Isrothy/neominimap.nvim",
113+
"Isrothy/neominimap.nvim",
114114
version = "v3.x.x",
115115
lazy = false, -- NOTE: NO NEED to Lazy load
116116
-- Optional. You can alse set your own keybindings
@@ -275,7 +275,7 @@ vim.g.neominimap = {
275275
--- Border style of the floating window.
276276
--- Accepts all usual border style options (e.g., "single", "double")
277277
--- @type string | string[] | [string, string][]
278-
window_border = "single",
278+
window_border = vim.fn.has("nvim-0.11") == 1 and vim.opt.winborder:get() or "single",
279279

280280
-- When true, the floating window will be recreated when you close it.
281281
-- When false, the minimap will be disabled for the current tab when you close the minimap window.
@@ -298,7 +298,24 @@ vim.g.neominimap = {
298298

299299
diagnostic = {
300300
enabled = true, ---@type boolean
301-
severity = vim.diagnostic.severity.WARN, ---@type vim.diagnostic.SeverityInt
301+
302+
-- When enabled, diagnostics will be sourced directly from the DiagnosticChanged event,
303+
-- meaning they will follow the settings from vim.diagnostic.config.
304+
-- In this mode, the `severity` filter is ignored.
305+
use_event_diagnostics = false, ---@type boolean
306+
307+
-- The `severity` option specifies which diagnostics to include based on their severity.
308+
-- Note: This option is ignored when `use_event_diagnostics` is enabled.
309+
--
310+
-- Allowed formats for the `severity` filter:
311+
-- 1. A single severity level:
312+
-- eg: severity = vim.diagnostic.severity.WARN
313+
-- 2. A table with a "min" and/or "max" key:
314+
-- eg: severity = { min = vim.diagnostic.severity.WARN, max = vim.diagnostic.severity.ERROR }
315+
-- 3. A list-like table of severity values:
316+
-- eg: severity = { vim.diagnostic.severity.WARN, vim.diagnostic.severity.ERROR }
317+
---@see vim.diagnostic.severity
318+
severity = nil, ---@type vim.diagnostic.SeverityFilter?
302319
mode = "line", ---@type Neominimap.Handler.Annotation.Mode
303320
priority = {
304321
ERROR = 100, ---@type integer
@@ -504,84 +521,84 @@ To refresh the minimap for windows 3 and 4:
504521

505522
- Global API
506523

507-
- `require('neominimap').on()`
524+
- `require('neominimap.api').enable()`
508525

509526
- **Description:** Enable the minimap globally across all buffers and windows.
510527
- **Arguments:** None
511528

512-
- `require('neominimap').off()`
529+
- `require('neominimap.api').disable()`
513530

514531
- **Description:** Disable the minimap globally.
515532
- **Arguments:** None
516533

517-
- `require('neominimap').toggle()`
534+
- `require('neominimap.api').toggle()`
518535

519536
- **Description:** Toggle the minimap on or off globally.
520537
- **Arguments:** None
521538

522-
- `require('neominimap').refresh()`
539+
- `require('neominimap.api').refresh()`
523540

524541
- **Description:** Refresh the minimap globally.
525542
- **Arguments:** None
526543

527-
- `require('neominimap').enabled()`
544+
- `require('neominimap.api').enabled()`
528545

529546
- **Description:** Check if the minimap is enabled globally.
530547
- **Arguments:** None
531548
- **Returns:** `true` if the minimap is enabled, `false` otherwise
532549

533550
- Buffer API
534551

535-
- `require('neominimap').bufOn(<bufnr>)`
552+
- `require('neominimap.api').buf.enable(<bufnr>)`
536553

537554
- **Description:** Enable the minimap for specified buffers.
538-
- **Arguments:** List of buffer numbers (defaults to current buffer if list is empty)
555+
- **Arguments:** None (defaults to current buffer), or an integer or a list of buffer numbers
539556

540-
- `require('neominimap').bufOff(<bufnr>)`
557+
- `require('neominimap.api').buf.disable(<bufnr>)`
541558

542559
- **Description:** Disable the minimap for specified buffers.
543-
- **Arguments:** List of buffer numbers (defaults to current buffer if list is empty)
560+
- **Arguments:** None (defaults to current buffer), or an integer or a list of buffer numbers
544561

545-
- `require('neominimap').bufToggle(<bufnr>)`
562+
- `require('neominimap.api').buf.toggle(<bufnr>)`
546563

547564
- **Description:** Toggle the minimap for specified buffers.
548-
- **Arguments:** List of buffer numbers (defaults to current buffer if list is empty)
565+
- **Arguments:** None (defaults to current buffer), or an integer or a list of buffer numbers
549566

550-
- `require('neominimap').bufRefresh(<bufnr>)`
567+
- `require('neominimap.api').buf.refresh(<bufnr>)`
551568

552569
- **Description:** Refresh the minimap buffers for specified buffers.
553-
- **Arguments:** List of buffer numbers (defaults to current buffer if list is empty)
570+
- **Arguments:** None (defaults to current buffer), or an integer or a list of buffer numbers
554571

555-
- `require('neominimap').bufEnabled(bufnr)`
572+
- `require('neominimap').buf.enabled(bufnr)`
556573

557574
- **Description:** Check if the minimap is enabled for specified buffers.
558575
- **Arguments:** A buffer number. If no buffer is specified, check for the
559576
current buffer.
560577
- **Returns:** `true` if the minimap is enabled, `false` otherwise
561578

562-
- Tabpage API
579+
- Tab API
563580

564-
- `require('neominimap').tabOn(<tabid>)`\*
581+
- `require('neominimap.api').tab.enable(<tabid>)`
565582

566583
- **Description:** Enable the minimap for specified tabpages.
567-
- **Arguments:** List of tabpage IDs (defaults to current tabpage if list is empty)
584+
- **Arguments:** None (defaults to current tabage), or an integer or a list of tabpage IDs
568585

569-
- `require('neominimap').tabOff(<tabid>)`
586+
- `require('neominimap.api').tab.disable(<tabid>)`
570587

571588
- **Description:** Disable the minimap for specified tabpages.
572-
- **Arguments:** List of tabpage IDs (defaults to current tabpage if list is empty)
589+
- **Arguments:** None (defaults to current tabage), or an integer or a list of tabpage IDs
573590

574-
- `require('neominimap').tabToggle(<tabid>)`
591+
- `require('neominimap.api').tab.toggle(<tabid>)`
575592

576593
- **Description:** Toggle the minimap for specified tabpages.
577-
- **Arguments:** List of tabpage IDs (defaults to current tabpage if list is empty)
594+
- **Arguments:** None (defaults to current tabage), or an integer or a list of tabpage IDs
578595

579-
- `require('neominimap').tabRefresh(tabid)`
596+
- `require('neominimap.api').tab.refresh(<tabid>)`
580597

581598
- **Description:** Refresh the minimap tabs for specified tabpages.
582-
- **Arguments:** List of tabpage IDs (defaults to current tabpage if list is empty)
599+
- **Arguments:** None (defaults to current tabage), or an integer or a list of tabpage IDs
583600

584-
- `require('neominimap').tabEnabled(tabid)`
601+
- `require('neominimap').tab.enabled(tabid)`
585602

586603
- **Description:** Check if the minimap is enabled for specified tabpages.
587604
- **Arguments:** A tabpage ID. If no tabpage is specified, check for the
@@ -590,27 +607,27 @@ To refresh the minimap for windows 3 and 4:
590607

591608
- Window API
592609

593-
- `require('neominimap').winOn(<winid>)`
610+
- `require('neominimap.api').win.enable(<winid>)`
594611

595612
- **Description:** Enable the minimap for specified windows.
596-
- **Arguments:** List of window IDs (defaults to current window if list is empty)
613+
- **Arguments:** None (defaults to current window), or an integer or a list of window IDs
597614

598-
- `require('neominimap').winOff(<winid>)`
615+
- `require('neominimap.api').win.disable(<winid>)`
599616

600617
- **Description:** Disable the minimap for specified windows.
601-
- **Arguments:** List of window IDs (defaults to current window if list is empty)
618+
- **Arguments:** None (defaults to current window), or an integer or a list of window IDs
602619

603-
- `require('neominimap').winToggle(<winid>)`
620+
- `require('neominimap.api').win.toggle(<winid>)`
604621

605622
- **Description:** Toggle the minimap for specified windows.
606-
- **Arguments:** List of window IDs (defaults to current window if list is empty)
623+
- **Arguments:** None (defaults to current window), or an integer or a list of window IDs
607624

608-
- `require('neominimap').winRefresh(<winid>)`
625+
- `require('neominimap.api').win.refresh(<winid>)`
609626

610627
- **Description:** Refresh the minimap windows for specified windows.
611-
- **Arguments:** List of window IDs (defaults to current window if list is empty)
628+
- **Arguments:** None (defaults to current window), or an integer or a list of window IDs
612629

613-
- `require('neominimap').winEnabled(winid)`
630+
- `require('neominimap').win.enable(winid)`
614631

615632
- **Description:** Check if the minimap is enabled for specified windows.
616633
- **Arguments:** A window ID. If no window is specified, check for the
@@ -619,20 +636,80 @@ To refresh the minimap for windows 3 and 4:
619636

620637
- Focus Control
621638

622-
- `require('neominimap').focus()`
639+
- `require('neominimap.api').focus.enable()`
623640

624641
- **Description:** Focus the minimap window, allowing interaction with it.
625642
- **Arguments:** None
626643

627-
- `require('neominimap').unfocus()`
644+
- `require('neominimap.api').focus.disable()`
628645

629646
- **Description:** Unfocus the minimap window, returning focus to the editor.
630647
- **Arguments:** None
631648

632-
- `require('neominimap').toggleFocus()`
649+
- `require('neominimap.api').focus.toggle()`
633650
- **Description:** Toggle focus between the minimap and the main editor window.
634651
- **Arguments:** None
635-
</details>
652+
653+
### Migration Guide
654+
655+
<details>
656+
<summary> Click to expand </summary>
657+
658+
The neominimap API has been updated to provide a more intuitive and flexible interface.
659+
The old API is now deprecated and will eventually be removed.
660+
This guide will help you transition to the new neominimap.api.
661+
662+
| Old Function | New Function |
663+
| ----------------------------------- | ----------------------------------------- |
664+
| `require('neominimap').on` | `require('neominimap.api').enable` |
665+
| `require('neominimap').off` | `require('neominimap.api').disable` |
666+
| `require('neominimap').toggle` | `require('neominimap.api').toggle` |
667+
| `require('neominimap').refresh` | `require('neominimap.api').refresh` |
668+
| `require('neominimap').enabled` | `require('neominimap.api').enabled` |
669+
| `require('neominimap').bufOn` | `require('neominimap.api').buf.enable` |
670+
| `require('neominimap').bufOff` | `require('neominimap.api').buf.disable` |
671+
| `require('neominimap').bufToggle` | `require('neominimap.api').buf.toggle` |
672+
| `require('neominimap').bufRefresh` | `require('neominimap.api').buf.refresh` |
673+
| `require('neominimap').bufEnabled` | `require('neominimap.api').buf.enabled` |
674+
| `require('neominimap').tabOn` | `require('neominimap.api').tab.disable` |
675+
| `require('neominimap').tabOff` | `require('neominimap.api').tab.disable` |
676+
| `require('neominimap').tabToggle` | `require('neominimap.api').tab.toggle` |
677+
| `require('neominimap').tabRefresh` | `require('neominimap.api').tab.refresh` |
678+
| `require('neominimap').tabEnabled` | `require('neominimap.api').tab.enabled` |
679+
| `require('neominimap').winOn` | `require('neominimap.api').win.enable` |
680+
| `require('neominimap').winOff` | `require('neominimap.api').win.disable` |
681+
| `require('neominimap').winToggle` | `require('neominimap.api').win.toggle` |
682+
| `require('neominimap').winEnabled` | `require('neominimap.api').win.enabled` |
683+
| `require('neominimap').winRefresh` | `require('neominimap.api').win.refresh` |
684+
| `require('neominimap').focus` | `require('neominimap.api').focus.enable` |
685+
| `require('neominimap').unfocus` | `require('neominimap.api').focus.disable` |
686+
| `require('neominimap').toggleFocus` | `require('neominimap.api').focus.toggle` |
687+
688+
#### Key Differences Between the Old and New API
689+
690+
| Aspect | Old API (`neominimap`).doSomeThing | New API (`neominimap.api`).do_some_thing() |
691+
| ----------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
692+
| Input Type | Expects a list of integers. | Accepts `nil`, a single integer, or a list of integers. An empty list does nothing. |
693+
| Default Behavior | Automatically defaults to the current buffer/tab/window if the input list is empty. | Explicitly requires omitted input to default to the current buffer/tab/window. |
694+
| Design Philosophy | A wrapper for Vim commands, with implicit behaviors. | Independent of Vim commands. |
695+
696+
#### Handle Input Changes
697+
698+
- **Old Behavior:** Passing an empty list (`{}`) defaulted to the current buffer, tab, or window.
699+
- **New Behavior:** Passing an empty list does nothing.
700+
To default to the current context, pass `nil` or omit the argument.
701+
702+
Here is an example:
703+
704+
```lua
705+
-- Old API
706+
require('neominimap').bufOn({}) -- Defaults to current buffer
707+
-- New API
708+
require('neominimap.api').buf.enable() -- Explicitly defaults to current buffer
709+
require('neominimap.api').buf.enable({}) -- Does nothing
710+
```
711+
712+
</details>
636713

637714
## Customized Handlers
638715

0 commit comments

Comments
 (0)