23 Commits
Author SHA1 Message Date
D. Ben KnobleandGitHub 1ccd99e113 add b:undo_ftplugin (#4625) 2023-11-19 09:13:56 +00:00
D. Ben KnobleandGitHub 07bd24d0fd omni: racket should complete at end of keywords (#4352)
Consider a file like
```
 #lang racket
(require racket/gui)
```
Type `Go(eventspace-`.

Pressing <C-x><C-o> to trigger omnicomplete should suggest
```
eventspace-handler-thread
eventspace-shutdown?
eventspace-event-evt
```

It does not (instead producing "top-level" completions, as if
`(eventspace-` wasn't even there).

Debugging, place the cursor on a space _after_. Now
`ale#completion#OmniFunc(1, '')` correctly returns `1`, but when given
`(0, 'eventspace-')` it returns either the empty list or generic
completion results as described above. I'm not entirely sure of the
mechanism, but it seems that `b:ale_completion_info.prefix` is the key,
and that this is set by `ale#completion#GetPrefix`. Calling
`ale#completion#GetPrefix('racket', line('.'), col('.'))` returned `''`!

Now, it returns `eventspace-` and the completions work correctly again.

Ref #4293, #4186, #3870
2022-11-05 16:47:59 +09:00
D. Ben KnobleandGitHub e4b2054408 test: ensure helptags runs (#4336)
Close #4328
2022-10-14 09:36:43 +09:00
D. Ben KnobleandGitHub e99f262c2f omni: find last racket keyword for completion (#4293)
Otherwise it finds the first keyword, which is usually not relevant to the
cursor position, and incorrectly calculates the completion position.
2022-09-08 16:57:43 +09:00
D. Ben KnobleandGitHub 0e99519500 racket: start completion in a full keyword (#4186)
The default `omni_start_map` is too restrictive for Lisps and Schemes
like Racket, which permit hyphens (among other special characters).

As recorded in #3870, trying to complete `file-name-from-path` when
typing `file-name<C-x><C-o>` would give completions like `namespace`
because the hyphen is ignored to find the start of the word for
completion.

Now the racket filetype searches for the start using the keyword class
`\k`, which is more precise.
2022-06-23 09:13:28 +09:00
D. Ben KnobleandGitHub 34a972f85d sml: use filenames (fix #1084) (#3860) 2021-10-07 11:33:33 +09:00
D. Ben KnobleandGitHub 530b38de34 Vim popup (#3817)
* implement vim popups for preview

Details on implementation
-------------------------
- we make use of the |popupwin| api
- we split implementations (Nvim* vs. Vim* prefix) and call the right
  one based on has('nvim')
- we follow a similar structure in each function, using the relevant API
  - popup_list, win_execute, popup_settext in VimShow
  - popup_create in VimCreate
  - popup_close in VimClose

Some differences
----------------
- we DON'T have VimPrepareWindowContent because we use arguments to
  popup_create for borders, padding, etc., and it also takes care of
  buffer creation.
- we follow the protocol of setting and using w:preview for information,
  but we only need the ID
- InsertEnter is the only autocommand required, because of
  popup_create's moved argument. Any cursor movement with 'any' will
  close the popup. This in turns means VimClose is only called from
  InsertMode, so no mode-restoration necessary
- we don't tweak too much in the buffer because vim's popup buffers
  already have most relevant settings and aren't editable without
  calling popup functions.
- I enabled scrollbars, close buttons, dragging, and resizing
- vim popups get as big as they need to by default, so no worrying about
  truncating/hiding/size

Note: we might want to consider changing w:preview to w:ale_preview to
avoid clashes if someone else tries to use the same variable

* floating window: document that vim supports it

* lint: fix indent/cont. lines
2021-07-23 21:59:31 +09:00
D. Ben KnobleandGitHub 651038b601 racket: support racket-langserver lsp (#3808)
* racket: support racket-langserver lsp

* racket-langserver: find highest dir with init.rkt

* autoload/ale/racket: re-indent to 4 spaces

* racket: lint: sort supported tools

* racket: lint: function!

This is _not_ needed anymore, but the lint wants it. See :help E127

* racket-langserver: do not use new dict format

* racket: lint: use snake_case

* add tests for racket-langserver

* racket-langserver tests: correct result values
2021-07-20 10:02:23 +09:00
D. Ben KnobleandGitHub d6302d1858 racket/raco: add filename to loc list (#3777)
This allows the location list from one buffer to point to an issue in
another; previously, the error message would be shown but with no way to
jump to it.
2021-07-04 21:17:44 +09:00
D. Ben Knoble bacb8bb902 dafny: update filename handling
cf. #3475, #3390
2021-01-23 12:34:36 -05:00
D. Ben Knoble 2c1c5b06d9 Merge branch 'master' into fix-swipl
* master: (133 commits)
  Add rnix-lsp for Nix diagnostics and completion
  add spectral support for json
  add spectral handler
  add spectral linter for yaml
  doc: Fix linter issues
  doc: Add documentation for Deno
  feat: Add Deno lsp support
  feat: Add Deno fmt fixer
  Add document for apkbuild filetype
  Add tests for atools handler, basic and dealing with Error and Warning
  Test default linters for apkbuild
  Document new default linters for apkbuild
  Make apkbuild_lint and secfixes_check default for apkbuild filetype
  document support for apkbuild-lint and secfixes-check for apkbuild
  Add linters for apkbuild-lint and secfixes-check from atools
  Add handler for the output of atools
  Fix typos
  Add command callback tests
  Add support for standalone files
  Fix linting errors
  ...
2021-01-23 12:29:05 -05:00
D. Ben Knoble 10d2b8797c swipl: style fix 2021-01-23 12:27:55 -05:00
D. Ben Knoble 730222bcd8 fix blank line issue (???) 2020-11-30 13:51:15 -05:00
D. Ben Knoble 7e12be0c64 Merge remote-tracking branch 'origin/master' into fix-swipl
* origin/master: (40 commits)
  fix: correct suggested filetype for yamlfix
  feat: add yamlfix fixer
  Use _config for LSP config options
  Add support for R languageserver (#3370)
  Fix 3103 - add shellcheck shell directive detection. (#3216)
  Added the Vundle command in installation instructions (#3400)
  Adds support for Tlint - A Tighten Opinionated PHP Linter (#3291)
  Add php phpcbf options (#3383)
  Use has('gui_running') instead of has('gui')
  Close #2727 - Add a hover-only setting for balloons
  Fix #3332 - Modify everything for rename/actions
  Add a missing blank line in documentation
  Add luafmt fixer (#3289)
  #3442 Fix code fix clangd issue
  Close #1466 - Add GVIM refactor menu support
  Look for node packages in .yarn/sdks as well
  Update documentation for code actions and rename
  cmp forwards, and reverse the code actions
  Support for LSP/tsserver Code Actions (#3437)
  Move the test for buffer-local variables
  ...
2020-11-30 13:42:21 -05:00
D. Ben Knoble 303b89a6b4 add tests 2020-11-30 13:40:57 -05:00
D. Ben Knoble 3f01cc247c dafny: add a timeLimit option and message-parsing 2020-11-30 13:28:04 -05:00
D. Ben Knoble 160af49450 update tests 2020-10-08 12:02:30 -04:00
D. Ben Knoble 47da7483d8 Merge remote-tracking branch 'origin/master' into fix-swipl
* origin/master:
  Add tests for maven.vim file
  Fix grammatical error in doc
  Add maven helper file; use maven wrapper if available instead of global 'mvn' executable
  fix lint, fix variable semantics and update tests
  bibclean: update matchlist reges for bibclean > v2.11.4
  Update rubocop_auto_correct_all tag
2020-10-08 11:55:39 -04:00
D. Ben Knoble c37cc1c8a3 dafny: include correct filename in lint results
Results can come from included files, not just the current buffer.
2020-10-08 11:54:56 -04:00
D. Ben Knoble 3410c1b1e2 prolog/swipl: add blank line after call
Though I do not see this specified or followed anywhere else
2020-10-01 13:18:34 -04:00
D. Ben Knoble 81b92bcbfa prolog/swipl: add test for new format 2020-10-01 13:12:43 -04:00
D. Ben Knoble e32d5fc03d prolog/swipl: address linter feedback
This actually caught a bug where I forgot to rename the function
2020-10-01 13:12:18 -04:00
D. Ben Knoble abe1440268 prolog/swipl: update error format for new version
A recent(?) update to swipl changed the error format from

  Warning: some.pl:2:
              Singleton variables: [Y]

to

  Warning: some.pl:2:
  Warning:    Singleton variables: [Y]

The old error handler doesn't report the correct line numbers and
messages on the old format.

I've chosen to add a function that covers the second case and detect it,
rather than rewrite the current function. This way, both versions should
be able to live together.

---

Example file that demonstrates the issue (some.pl above):
```
% vim: ft=prolog
ii(X, Y) :- X.
```

---
2020-10-01 12:49:53 -04:00