Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: make format timeout configurable. #1275

Merged
merged 10 commits into from
Jul 1, 2024

Conversation

ayamir
Copy link
Owner

@ayamir ayamir commented Jun 2, 2024

No description provided.

@ayamir ayamir linked an issue Jun 2, 2024 that may be closed by this pull request
@CharlesChiuGit
Copy link
Collaborator

lmao, i'm just doing a conform.nvim migration lol

@misumisumi
Copy link
Collaborator

misumisumi commented Jun 3, 2024

When using a formatter from none-ls, a timeout appears if the formatter does not support range format and the format takes a long time.
lsp-format-modifications doesn't respect none-ls timeout?

When I set format_modifications_only to false, the timeout defined in settings.lua worked.

It may be necessary to limit the formatters to those in joechrisellis/lsp-format-modifications.nvim/issues/1 (whitelist format).

@misumisumi
Copy link
Collaborator

misumisumi commented Jun 3, 2024

I worked when setting to vim.lsp.buf.format({ timeout_ms = opt.timeout_ms }) however timeout is shown as before.
Do we add this conf in format function ?

@ayamir
Copy link
Owner Author

ayamir commented Jun 6, 2024

lmao, i'm just doing a conform.nvim migration lol

what's the progress?

@ayamir
Copy link
Owner Author

ayamir commented Jun 6, 2024

When using a formatter from none-ls, a timeout appears if the formatter does not support range format and the format takes a long time. lsp-format-modifications doesn't respect none-ls timeout?

When I set format_modifications_only to false, the timeout defined in settings.lua worked.

It may be necessary to limit the formatters to those in joechrisellis/lsp-format-modifications.nvim/issues/1 (whitelist format).

Yes, we should do more things for null-ls.

@CharlesChiuGit
Copy link
Collaborator

what's the progress?

u can merge this pr first if it's ready.

@Jint-lzxy
Copy link
Collaborator

Yes, we should do more things for null-ls.

I think we could create a wrapper around the function (or in terms of the config, format_callback) that handles the real formatting inside lsp-format-modifications.nvim. This way, we can unify those "formatting providers" (e.g., LSP, none-ls) even without lsp-format-modifications.

@Jint-lzxy
Copy link
Collaborator

lmao, i'm just doing a conform.nvim migration lol

@CharlesChiuGit Did u find anything in conform.nvim that's (practically) better than our "native" formatting approach? I've been thinking about making the switch, but I'm still on the fence lol

@ayamir ayamir marked this pull request as draft June 10, 2024 14:57
@CharlesChiuGit
Copy link
Collaborator

CharlesChiuGit commented Jun 11, 2024

@CharlesChiuGit Did u find anything in conform.nvim that's (practically) better than our "native" formatting approach? I've been thinking about making the switch, but I'm still on the fence lol

@Jint-lzxy
TBH, not much really.

  1. conform.nvim uses "filetype"-based config v.s. none-ls.nvim uses linter-based config. Can't tell which is better, it's just a matter of taste.
  2. https://github.com/zapling/mason-conform.nvim vs https://github.com/jay-babu/mason-null-ls.nvim
  3. i think the best part of conform is that it supports formatting injections, for example, formatting code blocks in markdown files.( i'm not sure if none-ls can do it tho.)

I'm also working on refactoring formatting.lua since i think current setup is too complicate lol.
Here's my temporary config for conform.lua and conform_util.lua.

I'll finish it asap. plz let me know if u have any ideas or we could just stick to none-ls.

@CharlesChiuGit
Copy link
Collaborator

after trying to migrate to conform.nvim, i think it's not a obvious advantage to do the migration.

@CharlesChiuGit CharlesChiuGit marked this pull request as ready for review June 17, 2024 11:01
@CharlesChiuGit CharlesChiuGit requested a review from Jint-lzxy June 18, 2024 08:03
@Jint-lzxy
Copy link
Collaborator

@CharlesChiuGit

( i'm not sure if none-ls can do it tho.)

afaiu, yes and no.

The "yes" part is bc we only need a little code to extend the existing API and make it work. The "no" part is that injection formatting is, as of now, still not part of the formal standard, so things can break accidentally if the standard changes and a "standard-conforming" server is being used.

But honestly, I don't find that very useful lmao most of the time I'm just using an autocmd to extract these embedded codes, format them individually, and then place them back 😂

I'm also working on refactoring formatting.lua since i think current setup is too complicate lol.

lol that's cooooool! Hope we get a sneak peek very soon 😄

plz let me know if u have any ideas or we could just stick to none-ls.

TL;DR: I don't think delegating separate document capabilities (e.g., formatting, linting) to different plugins is really a good idea. imho it's better to implement the "client-side stuff" on our end (except for the builtins) and leave everything else to a comprehensive management framework that implements the protocol itself. i.e.,:

        ┌──────────────────┐                                        
        │Other Capabilities│                                        
        │                  │                                        
  ┌─────►  vim.diagnostic  │                                        
  │     │     vim.lsp      │                                        
  │     │     extmark      │                                        
  │     │       ...        │           ┌──────────────────┐         
  │     └──────────────────┘     ┌─────►       LSPs       ├───┐     
  │                              │     │ (nvim-lspconfig) │   │     
  │ Delegates                    │     └──────────────────┘   │     
  │                              │                            │     
┌─┴────────┐                     │                      ┌─────▼────┐
│  Client  │── ── ── ── ── ── ── │◄─────────────────────┤ Servers  │
│ (Neovim) │     JSON-RPC        │                      │(Multiple)│
└─┬────────┘                     │                      └─────▲────┘
  │                              │     ┌───────────┐          │     
  │                              │     │   exec    │          │     
  │                              └─────► (none-ls) ├──────────┘     
  │ Delegates                          └───────────┘                


  │     ┌─────────────────────┐                                     
  │     │Formatting Capability│                                     
  └────►│                     │                                     
        │  > formatting.lua   │                                     
        └─────────────────────┘                                     

Long answer: lol if you ask me, I'd say I actually prefer sticking to none-ls. bc if I recall correctly, the bare bones of the LSP, apart from those fancy features like semantic tokens, are to support (a) formatting, (b) linting, and (c) AST parsing (i.e., achieving a certain degree of "understanding" of the code as a whole). And none-ls just does that. nvim-lspconfig is for servers that actually follow the specification, whereas none-ls makes the others work "as if" they implement the standard protocol.

Personally, I feel like plugins such as conform.nvim and nvim-lint indeed do their jobs pretty well, but their use cases can all be covered by none-ls. Plus, they usually don't have that "comprehensive" amount of builtins as compared to none-ls, which makes me question the reason for including two instead of just one that would do both jobs, and even better (in my workflow at least).

Also, the client-side stuff we really need to handle is actually just textDocument/*formatting (which isn't applied automatically by Neovim itself). Other features, such as visualizing linting results, are already implemented in the vim.diagnostic module and work pretty well. All of these reasons combined are why I chose to stick with none-ls lol

@CharlesChiuGit
Copy link
Collaborator

CharlesChiuGit commented Jun 20, 2024

@Jint-lzxy

lol that's cooooool! Hope we get a sneak peek very soon 😄

lol, i'm not going to refactor it now since my draft is based on conform.nvim and since now we're going to use conform.nvim so no need to refactor now(

edit: lol, i'm not going to refactor it now since my draft is based on conform.nvim and since now we're not going to use conform.nvim so no need to refactor now(

@Jint-lzxy
Copy link
Collaborator

lol, i'm not going to refactor it now since my draft is based on conform.nvim and since now we're going to use conform.nvim so no need to refactor now(

Sorry, but did u mean "we're NOT going to use conform.nvim"? A bit confused when reading this lol

@CharlesChiuGit
Copy link
Collaborator

@Jint-lzxy

Sorry, but did u mean "we're NOT going to use conform.nvim"? A bit confused when reading this lol

yeah, after trying to config conform.nvim, i don't see obvious advantages to do so. And the config is not even cleaner.

@Jint-lzxy Jint-lzxy mentioned this pull request Jun 24, 2024
3 tasks
@Jint-lzxy
Copy link
Collaborator

Jint-lzxy commented Jun 24, 2024

yeah, after trying to config conform.nvim, i don't see obvious advantages to do so. And the config is not even cleaner.

@CharlesChiuGit lol I actually meant to point out a possible typo in ur comment (looked like u missed a "not"), but anyway, thanks for the extra comments 😄

lol, i'm not going to refactor it now since my draft is based on `conform.nvim` and
since now we're going to use `conform.nvim` so no need to refactor now(
               ^
               ^ missing "not" here?

@CharlesChiuGit
Copy link
Collaborator

yeah, lol it's a typo

@CharlesChiuGit
Copy link
Collaborator

i think we can merge this pr now

@Jint-lzxy
Copy link
Collaborator

i think we can merge this pr now

@CharlesChiuGit iiuc we still need to implement #1275 (comment) (or sth equivalent) right? (Original issue: #1275 (comment))

ayamir added 2 commits June 29, 2024 22:38
this commit also revert the settings structure b/c we can refactor it in
another PR.
@ayamir
Copy link
Owner Author

ayamir commented Jun 29, 2024

@misumisumi Could you please check it again?

@misumisumi
Copy link
Collaborator

settings["format_modifications_only"] = false seems to work perfectly.
timeout is effective.
In case settings["format_modifications_only"] = true, the following problem occurs:

  • stylua formats with incorrect indentation
  • unsupported formatters will not format at all

You might want to add an experimental note if you don't care about modification_only.

@ayamir
Copy link
Owner Author

ayamir commented Jun 30, 2024

stylua formats with incorrect indentation

It can be repro for stylua but not for other formatters. It's the reason why my commit doesn't pass CI.

@Jint-lzxy
Copy link
Collaborator

It can be repro for stylua but not for other formatters.

I think I mentioned elsewhere that range formatters only capture the lines that have actually been changed, without necessarily being aware of the context, which can occasionally lead to errors.

@ayamir
Copy link
Owner Author

ayamir commented Jun 30, 2024

I think I mentioned elsewhere that range formatters only capture the lines that have actually been changed, without necessarily being aware of the context, which can occasionally lead to errors.

So it's a upstream bug? Perhaps use treesitter to capture the context of changes lines and commit it to the formatter is a solution. For example, stylua supports the input of --range-start and --range-end: https://github.com/JohnnyMorganz/StyLua?tab=readme-ov-file#formatting-ranges

@ayamir ayamir changed the title feat&refactor: make format timeout configurable, refactor format-related options. feat: make format timeout configurable. Jun 30, 2024
Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>
@Jint-lzxy
Copy link
Collaborator

So it's a upstream bug? Perhaps use treesitter to capture the context of changes lines and commit it to the formatter is a solution.

Hmm I think it's not. afaiu this is how the specification defines this capability. Additionally, the link u shared mentions the following:

Only whole statements lying within the range will be formatted. If part of a statement falls outside the range, the statement will be ignored.

lua/core/settings.lua Outdated Show resolved Hide resolved
Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: ayamir <[email protected]>
@Jint-lzxy
Copy link
Collaborator

unsupported formatters will not format at all

@misumisumi Do u have any examples for this case? We do resort to reformatting the entire buffer if range formatting fails for any reason.

if
	format_modifications_only
	and require("lsp-format-modifications").format_modifications(client, bufnr).success
then
	if format_notify then
		vim.notify(
			string.format("[LSP] Format changed lines successfully with %s!", client.name),
			vim.log.levels.INFO,
			{ title = "LSP Range Format Success" }
		)
	end
	return
end

-- Fall back to format the whole buffer (even if partial formatting failed)
local params = vim.lsp.util.make_formatting_params(opts.formatting_options)
local result, err = client.request_sync("textDocument/formatting", params, timeout_ms, bufnr)
...

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: ayamir <[email protected]>
@misumisumi
Copy link
Collaborator

misumisumi commented Jun 30, 2024

Do u have any examples for this case? We do resort to reformatting the entire buffer if range formatting fails for any reason.

textlint have problem.
2024-06-30_14-33

@ayamir
Copy link
Owner Author

ayamir commented Jun 30, 2024

@misumisumi Seems it has been formatted when range format failed?

@misumisumi
Copy link
Collaborator

Yes.
This is the result when range format is enabled.
It works when range format is not enabled.

@misumisumi
Copy link
Collaborator

misumisumi commented Jun 30, 2024

I checked NullLsLog, and it seems that the formatter is not even called in the first place.
The same is true for shfmt, which does not support range formatting.
This occurs with files managed by git.
Also, files before they are managed by git can be formatted.
However, textlint fails with a timeout, perhaps ignoring timeout_ms.
(textlint inserts very heavy processing)

null-ls returns require("lsp-format-modifications").format_modifications(client, bufnr).success as true regardless of the result.

@ayamir
Copy link
Owner Author

ayamir commented Jun 30, 2024

The same is true for shfmt, which does not support range formatting.

In my test case, the format of the whole file is executed when range format failed, which is expected.

image

IMO this PR is ready to merge b/c it has been realize its original goal, i.e., make format timeout configurable.

@ayamir ayamir requested a review from Jint-lzxy July 1, 2024 01:11
Copy link
Collaborator

@Jint-lzxy Jint-lzxy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Jint-lzxy Jint-lzxy merged commit 8f30bae into 0.10 Jul 1, 2024
4 checks passed
@Jint-lzxy Jint-lzxy deleted the feat/configurable-format-timeout branch July 1, 2024 02:03
Jint-lzxy added a commit that referenced this pull request Jul 1, 2024
* feat: implement inlay virtual text for rust and go (#759)

* feat: implement inlay virtual text for rust and go

Signed-off-by: 蔡略 <[email protected]>

* fix: go-nvim use lsp-inlayhints.nvim only

Signed-off-by: 蔡略 <[email protected]>

* refactor: move inlay-hints to `completion`

Signed-off-by: 蔡略 <[email protected]>

* feat: lua support

Signed-off-by: 蔡略 <[email protected]>

* chore(inlay-hints): remove `sumneko_lua`

* fix: set inlay-hints debug mode off

Signed-off-by: 蔡略 <[email protected]>

---------

Signed-off-by: 蔡略 <[email protected]>
Co-authored-by: Charles Chiu <[email protected]>

* workaroud for watchfile problem (#871)

* workaroud for watchfile problem

* fix CI

* Merge branch 'main'

* chore(neodim): remove pin commit (#1142)

Signed-off-by: Charles Chiu <[email protected]>

* fix: remove `specs.nvim` due to long time no update.

Signed-off-by: ayamir <[email protected]>

* Merge branch 'main' into 0.10

Signed-off-by: ayamir <[email protected]>

* refactor: use neovim native inlay-hint.

Signed-off-by: ayamir <[email protected]>

* fix(lsp): adapt to upstream API, eliminate warning.

Signed-off-by: ayamir <[email protected]>

* fix(plugins): add nvim-bqf.

* fix(go.nvim): adapt upstream api.

* feat(plugins): add dropbar.nvim for winbar.

Signed-off-by: ayamir <[email protected]>

* feat(settings): make enable_inlayhint configurable.

Signed-off-by: ayamir <[email protected]>

* fixup: check user input, improve robustness.

Signed-off-by: ayamir <[email protected]>

* fix(clangd): disable clangd for proto.

Signed-off-by: ayamir <[email protected]>

* fixup: clean redundant config files.

* fix(gopls): unify gopls config, allow user overrides.

* fixup: clean code.

* feat(clang_format): enable clang_format for cuda and protobuf.

* fix: inlay_hint error (#1236)

* Merge remote-tracking branch 'origin' into 0.10

* fix: lua_ls workspace settings.

Signed-off-by: ayamir <[email protected]>

* chore: upgrade to new api to judge if is a list.

Signed-off-by: ayamir <[email protected]>

* chore: use builtin grep_string to search selection.

Signed-off-by: ayamir <[email protected]>

* chore: general cleanup

Signed-off-by: Jint-lzxy <[email protected]>

* fix: `inlayhint` -> `inlayhints`

Signed-off-by: Jint-lzxy <[email protected]>

* fix(ts-autotag): update config format

* chore: use vim.uv in place of vim.loop.

Signed-off-by: ayamir <[email protected]>

* chore: use vim.iter():flattern in place of vim.tbl_flattern.

Signed-off-by: ayamir <[email protected]>

* chore: update install scripts for nvim 0.10 stable. (#1271)

Signed-off-by: ayamir <[email protected]>

* chore: replace deprecated apis (#1266)

* chore: use vim.lsp.get_clients in place of vim.lsp.get_active_clients.

Signed-off-by: ayamir <[email protected]>

* chore: use vim.lsp.get_clients in place of vim.lsp.buf_get_clients.

Signed-off-by: ayamir <[email protected]>

---------

Signed-off-by: ayamir <[email protected]>

* fix(toggleterm): use `""` instead of `nil` to fix auto-exit on Windows (#1267)

* fix: utilize `ts-context` in `glance` preview window (#1265)

* set ts-context floatterm zindex to 50 which greater than 45.

default zindex of glance [dnlhc/glance.nvim] floatterm is 45.
It can display on glance.

Signed-off-by: mjkx <[email protected]>

* set trim_scope to inner

Signed-off-by: mjkx <[email protected]>

* perf: add discription

---------

Signed-off-by: mjkx <[email protected]>
Co-authored-by: CharlesChiuGit <[email protected]>

* chore: use vim.o in place of vim.api.nvim_get_option_value. (#1269)

Signed-off-by: ayamir <[email protected]>

* fix(0.10): minor cleanup (#1276)

Signed-off-by: Jint-lzxy <[email protected]>

* feat(scripts): update frequently used functions (#1277)

I recently refactored my frequently used commands and
thought it would be great to also port that here lol

Signed-off-by: Jint-lzxy <[email protected]>

* feat(docs): support v0.10 (#1278)

* feat(docs): support v0.10

Signed-off-by: Jint-lzxy <[email protected]>

* fix instructions

Signed-off-by: Jint-lzxy <[email protected]>

---------

Signed-off-by: Jint-lzxy <[email protected]>

* fix(scripts): typo

Signed-off-by: Jint-lzxy <[email protected]>

* fixup! fix(scripts): typo

* feat(README): supports `0.9` -> `0.10`

Signed-off-by: Jint-lzxy <[email protected]>

* chore: cleanup

Signed-off-by: Jint-lzxy <[email protected]>

* fix(lualine): ensure all components are properly aligned

Signed-off-by: Jint-lzxy <[email protected]>

* unlock rustaceanvim

Signed-off-by: Jint-lzxy <[email protected]>

* feat(lsp): be protective

Signed-off-by: Jint-lzxy <[email protected]>

* fix: `neovim` -> `Neovim`

Signed-off-by: Jint-lzxy <[email protected]>

* Revert "fix(lualine): ensure all components are properly aligned"

This reverts commit 9be7ffe.

* feat: support new options (#1279)

Signed-off-by: Jint-lzxy <[email protected]>

* feat(trouble)!: v3 support (#1281)

* feat(trouble)!: v3 support

This PR includes the following changes:

- *REMOVED* all features unrelated to the original purpose of
  trouble.nvim, such as LSP References (Glance.nvim covers this) and
  qf-list preview (bqf handles this).

- Added a custom mapping for searching project diagnostics. This is
  slightly different from workspace diagnostics: one is defined by
  the language server itself (e.g., see LuaLS's documentation on workspace
  diagnostics), while the other is determined with assistance from Project.nvim.

- General cleanup: I deliberately excluded LspKind support from our
  config this time bc imho it's a feature we likely won't use and
  supporting it is a real hassle.

Signed-off-by: Jint-lzxy <[email protected]>

* fixup! Missing one option

* fix: invoke `utils.load_plugin`

Signed-off-by: Jint-lzxy <[email protected]>

---------

Signed-off-by: Jint-lzxy <[email protected]>

* refactor: overhaul the icon library (#1282)

This PR significantly updates the icon library by expanding its
content, removing duplicates, and organizing icons into more cohesive
groups.

I've also created a custom Dropbar config that uses these icons and
adds toggleterm support.

* fix typo

* Oops... Missing one icon

* fix: invoke `utils.load_plugin`

Signed-off-by: Jint-lzxy <[email protected]>

* feat(lsp): correctly configure diagnostic-signs (#1280)

Signed-off-by: Jint-lzxy <[email protected]>

* feat: disable more plugins for RO (buf|file)types (#1284)

Signed-off-by: Jint-lzxy <[email protected]>

* fix(alpha): cannot cast `string` to `integer` for winheight (#1285)

iirc this is deprecated

Signed-off-by: Jint-lzxy <[email protected]>

* feat(ibl): support per-language indent config (#1287)

* feat(ibl): support per-language indent config

Signed-off-by: Jint-lzxy <[email protected]>

* fixup! feat(ibl): support per-language indent config

---------

Signed-off-by: Jint-lzxy <[email protected]>

* feat(ibl): more language nodes (#1288)

* feat(ibl): more language nodes

Signed-off-by: Jint-lzxy <[email protected]>

* feat(ibl): even more language nodes

Signed-off-by: Charles Chiu <[email protected]>

* chore(ibl): sorting

Signed-off-by: Charles Chiu <[email protected]>

---------

Signed-off-by: Jint-lzxy <[email protected]>
Signed-off-by: Charles Chiu <[email protected]>
Co-authored-by: Charles Chiu <[email protected]>

* feat(luasnip): support ECMAScript regexes (#1291)

As per `:h luasnip-lsp-snippets-transformations`

Signed-off-by: Jint-lzxy <[email protected]>

* feat(core): use the lua API to set options (#1292)

Signed-off-by: Jint-lzxy <[email protected]>

* feat: include several new plugins (#1235)

* feat(cmp): more completion candidates from opened buffers. (#1219)

* buffer completion config

* opts -> option

* chore(lockfile): auto update lazy-lock.json

* chore(plugins): tidying up (#1221)

This commit mainly tweaks the loading events of some plugins to align with
upstream specifications. Additionally, there have been enhancements made to
certain documentation.

Signed-off-by: Jint-lzxy <[email protected]>

* fix(plugins): remove duplicate specifications

Signed-off-by: Jint-lzxy <[email protected]>

* fix: use `init` for vim plugins (#1222)

Signed-off-by: ayamir <[email protected]>

* chore(lockfile): auto update lazy-lock.json

* docs: mention the experimental nature of the 0.10 branch (#1215)

* docs: add note for 0.10 nightly branch in readme.

Signed-off-by: ayamir <[email protected]>

* chore(issue_template): add nightly warning

Signed-off-by: Charles Chiu <[email protected]>

* chore(issue_tempate): linting

Signed-off-by: Charles Chiu <[email protected]>

* docs: update readme for 0.10 branch.

Co-authored-by: Jint-lzxy <[email protected]>
Signed-off-by: Mohu <[email protected]>

* chore(issue_template): add nightly warning

Signed-off-by: Charles Chiu <[email protected]>

* chore(issue_template): add nightly warning

Signed-off-by: Charles Chiu <[email protected]>

---------

Signed-off-by: ayamir <[email protected]>
Signed-off-by: Charles Chiu <[email protected]>
Signed-off-by: Mohu <[email protected]>
Signed-off-by: Jint-lzxy <[email protected]>
Co-authored-by: Charles Chiu <[email protected]>
Co-authored-by: Jint-lzxy <[email protected]>

* fix(ISSUE_TEMPLATE): format code

Signed-off-by: Jint-lzxy <[email protected]>

* fix(README): misplaced content

Signed-off-by: Jint-lzxy <[email protected]>

* fix(todo-comment): add missing keywords (#1225)

Signed-off-by: Charles Chiu <[email protected]>

* chore(lockfile): auto update lazy-lock.json

* fix(options): remove options managed by `vim-sleuth` (#1229)

Since all tab-related stuff is now managed by `vim-sleuth`, I think
it is better to remove the relevant options to avoid confusion.

Signed-off-by: Jint-lzxy <[email protected]>

* chore(lockfile): auto update lazy-lock.json

* fix(rustaceanvim): use `init` for its config (#1231)

Signed-off-by: Jint-lzxy <[email protected]>

* chore(lockfile): auto update lazy-lock.json

* feat!: improve go development experience (#1226)

* chore(go): replace vim-go with go.nvim.

Signed-off-by: ayamir <[email protected]>

* fix: install gopls by mason by default.

Signed-off-by: ayamir <[email protected]>

* feat(keymap): set `n|gi` to goto implementation.

Signed-off-by: ayamir <[email protected]>

* chore(keymap): use `gm` to jump to lsp implementations

Co-authored-by: 冷酔閑吟 <[email protected]>
Signed-off-by: Mohu <[email protected]>

* fixup: remove unused `map_cu`.

* chore: use gopls instead of null-ls to format.

Signed-off-by: ayamir <[email protected]>

* chore: add notes for config options.

Signed-off-by: ayamir <[email protected]>

* fixup: tidy settings for go.nvim and gopls.

* docs: update more notes for how to config go.nvim.

* chore: cleanup

Signed-off-by: Jint-lzxy <[email protected]>

* fix: enable only the options that are truly necessary

Signed-off-by: Jint-lzxy <[email protected]>

* fixup! chore: cleanup

* fix(gopls): invalid config entry

Signed-off-by: Jint-lzxy <[email protected]>

---------

Signed-off-by: ayamir <[email protected]>
Signed-off-by: Mohu <[email protected]>
Signed-off-by: Jint-lzxy <[email protected]>
Co-authored-by: 冷酔閑吟 <[email protected]>
Co-authored-by: neogtliu <[email protected]>

* feat!: add `advanced-git-search.nvim`

* feat!: add `search.nvim` to enhance `telescope`.

* feat: reorganize keymaps for telescope search collections.

Signed-off-by: ayamir <[email protected]>

* fixup: update descriptions for modified keymaps.

* chore: remove single diagnostic disable for undefined-field.

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* chore: remove diagnostic disable for undefined-field.

* feat!: replace `colorizer.lua` with `nvim-highlight-colors`

* fix: invoke `utils.load_plugin`

Signed-off-by: Jint-lzxy <[email protected]>

* chore(advanced-git-search): remove unused options

Signed-off-by: Jint-lzxy <[email protected]>

* feat(telescope): add collection panel for `search.nvim`

* chore: typo

* feat: more documentation

Signed-off-by: Jint-lzxy <[email protected]>

* chore: clean up

* feat: don't hard-code collection names

* chore: use custom loader

* fix: disable warning

* fix: CI & cleanup

Signed-off-by: Jint-lzxy <[email protected]>

* Revert `lazy-lock.json`

Signed-off-by: Jint-lzxy <[email protected]>

* fix: make luaJIT happy

Signed-off-by: Jint-lzxy <[email protected]>

---------

Signed-off-by: Jint-lzxy <[email protected]>
Signed-off-by: ayamir <[email protected]>
Signed-off-by: Charles Chiu <[email protected]>
Signed-off-by: Mohu <[email protected]>
Co-authored-by: mjkx <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: 冷酔閑吟 <[email protected]>
Co-authored-by: Mohu <[email protected]>
Co-authored-by: neogtliu <[email protected]>

* feat: better way to check if the (T|G)UI is running (#1297)

Signed-off-by: Jint-lzxy <[email protected]>

* chore(global): cleanup legacy code (#1296)

Signed-off-by: Jint-lzxy <[email protected]>

* feat: reduce the use of direct syscalls (#1294)

* feat: reduce the use of direct syscalls

Signed-off-by: Jint-lzxy <[email protected]>

* fix: typo

Signed-off-by: Jint-lzxy <[email protected]>

---------

Signed-off-by: Jint-lzxy <[email protected]>

* fix(events): avoid name clashes (#1295)

Signed-off-by: Jint-lzxy <[email protected]>

* Feat/telescope collections keymaps (#1299)

* feat(telescope): add some new plugins for `search.nvim`

* fixup: correct alpha-nvim config.

* feat: more resonable keymap, add notify to misc.

Signed-off-by: ayamir <[email protected]>

---------

Signed-off-by: ayamir <[email protected]>
Co-authored-by: ayamir <[email protected]>

* fix(gitsigns): upstream breaking changes (#1300)

See lewis6991/gitsigns.nvim@3d7e49c

Signed-off-by: Jint-lzxy <[email protected]>

* fix(core): missing leading path separator (#1301)

Signed-off-by: Jint-lzxy <[email protected]>

* Revert "Feat/telescope collections keymaps (#1299)" (#1302)

This reverts commit 93c06cd.

* Feat/telescope collections keymaps (#1303)

* feat(telescope): add some new plugins for `search.nvim`

* fixup: correct alpha-nvim config.

* feat: more resonable keymap, add notify to misc.

Signed-off-by: ayamir <[email protected]>

* revert: local cmp changes.

* fix: update alpha-nvim config.

* chore: update doc strings

Signed-off-by: Jint-lzxy <[email protected]>

* Update lua/modules/configs/ui/alpha.lua

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* Update lua/modules/configs/ui/alpha.lua

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* Update lua/modules/configs/ui/alpha.lua

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* Update lua/modules/configs/ui/alpha.lua

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* Update lua/modules/configs/ui/alpha.lua

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* feat: update dotstutor.

Signed-off-by: ayamir <[email protected]>

* feat: correct several minor issues

Signed-off-by: Jint-lzxy <[email protected]>

* chore: cleanup

Signed-off-by: Jint-lzxy <[email protected]>

* feat!: mnemonic keymaps

Signed-off-by: Jint-lzxy <[email protected]>

---------

Signed-off-by: ayamir <[email protected]>
Signed-off-by: Jint-lzxy <[email protected]>
Signed-off-by: Mohu <[email protected]>
Co-authored-by: CharlesChiuGit <[email protected]>
Co-authored-by: Jint-lzxy <[email protected]>

* feat(treesitter): lessened performance restrictions (#1305)

* feat(treesitter): lessened performance restrictions

This commit lifts some of the performance restrictions previously imposed on
Treesitter when incremental parsing was not yet supported. Specifically:

Treesitter will now only be disabled by default for files exceeding 7,500 lines
or 2 MiB in size. Testing on an Intel i9-9880H with an APPLE SSD AP1024N shows
noticeable lag at these thresholds.

Signed-off-by: Jint-lzxy <[email protected]>

* fixup: return correct value.

---------

Signed-off-by: Jint-lzxy <[email protected]>
Co-authored-by: ayamir <[email protected]>

* chore: update plugin author's name

Signed-off-by: Charles Chiu <[email protected]>

* feat(nixos): add `mergeLazyLock` option (#1310)

* feat(nixos): add copyLazyLock option

* fix(nixos): fix code style

accepted modification proposed by nixd
see more nix's code style best practice below url
https://nix.dev/guides/best-practices

* fix(nixos): rename copyLazyLock to mergeLazyLock

* fix(nixos): fix discription

* fix: cmp snippets source selecting issue (#1309)

* migrate(cmp): `cmp_nvim_lsp` capabilities API update

* feat(cmp): make `<CR>` safer

* fix(cmp): occasional inability to select completion items (#1315)

Signed-off-by: Jint-lzxy <[email protected]>
Signed-off-by: ayamir <[email protected]>
Co-authored-by: ayamir <[email protected]>

* feat: credit all collaborators as copyright holders (#1316)

Signed-off-by: Jint-lzxy <[email protected]>

* feat: make format timeout configurable (#1275)

* feat&refactor: make format timeout configurable, refactor format-related
options.

* chore(settings): set `format_modifications_only` to `false` to prevent possible ci issues

Signed-off-by: Charles Chiu <[email protected]>

* fix: set timeout for null-ls considering range format capability.

this commit also revert the settings structure b/c we can refactor it in
another PR.

* fixup: fix ci.

* fix: remove redundant notification.

* fixup: fix notify logic and CI.

* fixup: merge judgements.

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: Mohu <[email protected]>

* fixup: remove redundant judge.

* docs: more accurate comment note.

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: ayamir <[email protected]>

* fix: wrong require source.

Co-authored-by: jint_lzxy_ <[email protected]>
Signed-off-by: ayamir <[email protected]>

---------

Signed-off-by: Charles Chiu <[email protected]>
Signed-off-by: Mohu <[email protected]>
Signed-off-by: ayamir <[email protected]>
Co-authored-by: Charles Chiu <[email protected]>
Co-authored-by: jint_lzxy_ <[email protected]>

---------

Signed-off-by: 蔡略 <[email protected]>
Signed-off-by: ayamir <[email protected]>
Signed-off-by: Charles Chiu <[email protected]>
Signed-off-by: Jint-lzxy <[email protected]>
Signed-off-by: mjkx <[email protected]>
Signed-off-by: Mohu <[email protected]>
Signed-off-by: ayamir <[email protected]>
Co-authored-by: ClSlaid <[email protected]>
Co-authored-by: Charles Chiu <[email protected]>
Co-authored-by: Xie Zejian <[email protected]>
Co-authored-by: Jint-lzxy <[email protected]>
Co-authored-by: Mythos_404 <[email protected]>
Co-authored-by: mjkx <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: neogtliu <[email protected]>
Co-authored-by: MiSumiSumi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow format timeouts to be set individually
4 participants