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

Removing logic needed to support Vim 7.4 as it has been dropped. #2495

Merged

Conversation

rbisewski
Copy link
Contributor

As per issue #2488, this branch removes Vim 7.4 support by deleting a number of checks for features that the Vim 7.4 series did not support. This also adjusts the tests and the Makefile, as well as small tweaks to the documentation in order to clarify that Vim 8.0.1542 or newer is the supported version; with that particular version of Vim 8 being chosen on account of its prior use in the scripts/install-vim file.

Let me know what you think...

Copy link
Collaborator

@bhcleek bhcleek left a comment

Choose a reason for hiding this comment

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

Thank you for the contribution (second one in a single day, nice!)

This looks pretty great, I do have some changes to request, though.

First, it's possible to build Vim without job support and without other features that vim-go may require. With that in mind, can you please leave in the bits that branch based on whether jobs or other features are supported?

@rbisewski
Copy link
Contributor Author

Sounds good, and glad I could help :)

So for context you mean you want code reverted?

  • autoload/go/cmd.vim

    • revert all changes
  • autoload/go/coverage.vim

    • revert theif !exists("*matchaddpos") lines
  • autoload/go/guru.vim

    • revert all the if !exists("*json_decode") and if !exists("*matchaddpos") lines

I suppose I could simplify the comments on those above lines as well to remove references to the Vim 7.4 and the various commit links since I figure they are less important as Vim 8 / NeoVim supports more features by default.

Unless you'd prefer to keep them for historic value?

@bhcleek
Copy link
Collaborator

bhcleek commented Sep 17, 2019

So for context you mean you want code reverted?

Yes. Your list of things to revert is exactly what I was thinking.

I suppose I could simplify the comments on those above lines as well to remove references to the Vim 7.4 and the various commit links since I figure they are less important as Vim 8 / NeoVim supports more features by default.

Unless you'd prefer to keep them for historic value?

Simplifying those comments make sense to me, but it's not essential; I'll leave it to your discretion whether to leave them as-is or simplify them.

@rbisewski
Copy link
Contributor Author

I have since restored the code and simplified the comments and debug output messages, so I believe this is done now.

Copy link
Collaborator

@bhcleek bhcleek left a comment

Choose a reason for hiding this comment

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

This looks great. Thank you 🙇

let l:unsupported = 0
if go#config#VersionWarning() != 0
if has('nvim')
let l:unsupported = !has('nvim-0.3.2')
else
let l:unsupported = (v:version < 704 || (v:version == 704 && !has('patch2009')))
let l:unsupported = v:version < 800
endif
Copy link
Contributor

Choose a reason for hiding this comment

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

Checking for just "Vim 8" isn't really enough, since it spans almost 2 years of development. You should pick a specific patch version like it did previously.

In the documentation above 8.0.1542 was chosen; why that version? The previous policy was always "what the latest Ubuntu LTS has", which is now Vim 8.0.1453 (18.04).

Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, I see now that you probably choose 8.0.1542 because that's in the Travis file? It has no special meaning, it just happened to be the version installed on my Arch laptop when I wrote that.

Copy link
Collaborator

Choose a reason for hiding this comment

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

We needed to pick something, and Vim8 is sufficient for now.

Copy link
Contributor

Choose a reason for hiding this comment

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

So will Vim 8,0.0001 work? Probably not, since: https://github.com/fatih/vim-go/search?q=patch-8.0&unscoped_q=patch-8.0

These patch checks should probably also be removed, by the way. I don't know why it's such a fight to get all these details right every time... It's not even harder or anything 🤷‍♂️

Copy link
Collaborator

Choose a reason for hiding this comment

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

My thinking here is that previously vim-go checked that it was at least Vim 7.4.2009. All we're doing is dropping support for Vim 7.4. Another patch to make sure it's at least 8.0.1453 makes sense. I'll add that later and probably drop the unneeded patch checks at the same time (if you're not motivated to submit it first), but didn't see any need to hold up the improvements that @rbisewski made.

@bhcleek bhcleek merged commit 5ab8b73 into fatih:master Sep 17, 2019
bhcleek added a commit that referenced this pull request Sep 17, 2019
Update CHANGELOG.md for #2458, #2463, #2494, and #2495.
@bhcleek bhcleek added this to the vim-go 1.22 milestone Sep 21, 2019
clrpackages pushed a commit to clearlinux-pkgs/vim-go that referenced this pull request Feb 1, 2020
v1.22 - (January 30, 2020)

BACKWARDS INCOMPATIBILITIES:
* Drop support for Vim 7.4. The minimum required version of Vim is now 8.0.1453.
  [[GH-2495]](fatih/vim-go#2495)
  [[GH-2497]](fatih/vim-go#2497)
* Drop support for `gometalinter`
  [[GH-2494]](fatih/vim-go#2494)

IMPROVEMENTS:
* Highlight the `go` keyword in go.mod files.
  [[GH-2473]](fatih/vim-go#2473)
* Use echo functions consistently.
  [[GH-2458]](fatih/vim-go#2458)
* Add support for managing goroutines in debugger.
  [[GH-2463]](fatih/vim-go#2463)
  [[GH-2527]](fatih/vim-go#2527)
* Document `g:go_doc_popup_window`.
  [[GH-2506]](fatih/vim-go#2506)
* Make `g:go_doc_popup_window=1` work for Neovim, too.
  [[GH-2451]](fatih/vim-go#2451)
  [[GH-2512]](fatih/vim-go#2512)
* Handle errors jumping to a definition in a file open in another Vim process
  better.
  [[GH-2518]](fatih/vim-go#2518)
* Improve the UX when the gopls binary is missing.
  [[GH-2522]](fatih/vim-go#2522)
* Use gopls instead of guru for `:GoSameIds`.
  [[GH-2519]](fatih/vim-go#2519)
* Use gopls instead of guru for `:GoReferrers`.
  [[GH-2535]](fatih/vim-go#2535)
* Update documentation for `g:go_addtags_transform`.
  [[GH-2541]](fatih/vim-go#2541)
* Install most helper tools in module aware mode.
  [[GH-2545]](fatih/vim-go#2545)
* Add a new option, `g:go_referrers_mode` to allow the user to choose whether
  to use gopls or guru for finding references.
  [[GH-2566]](fatih/vim-go#2566)
* Add options to control how gopls responds to completion requests.
  [[GH-2567]](fatih/vim-go#2567)
  [[GH-2568]](fatih/vim-go#2568)
* Add syntax highlighting for binary literals.
  [[GH-2557]](fatih/vim-go#2557)
* Improve highlighting of invalid numeric literals.
  [[GH-2571]](fatih/vim-go#2571)
  [[GH-2587]](fatih/vim-go#2587)
  [[GH-2589]](fatih/vim-go#2589)
  [[GH-2584]](fatih/vim-go#2584)
  [[GH-2597]](fatih/vim-go#2597)
  [[GH-2599]](fatih/vim-go#2599)
* Add highlighting of sections reported by gopls diagnostics' errors
  and warnings.
  [[GH-2569]](fatih/vim-go#2569)
  [[GH-2643]](fatih/vim-go#2643)
* Make the highlighting of fzf decls configurable.
  [[GH-2572]](fatih/vim-go#2572)
  [[GH-2579]](fatih/vim-go#2579)
* Support renaming with gopls.
  [[GH-2577]](fatih/vim-go#2577)
  [[GH-2618]](fatih/vim-go#2618)
* Add an option, `g:go_gopls_enabled`, to allow gopls integration to be
  disabled.
  [[GH-2605]](fatih/vim-go#2605)
  [[GH-2609]](fatih/vim-go#2609)
  [[GH-2638]](fatih/vim-go#2638)
  [[GH-2640]](fatih/vim-go#2640)
* Add a buffer level option, `b:go_fmt_options`, to control formatting options
  per buffer.
  [[GH-2613]](fatih/vim-go#2613)
* Use build tags when running `:GoVet`.
  [[GH-2615]](fatih/vim-go#2615)
* Add new snippets for UltiSnips.
  [[GH-2623]](fatih/vim-go#2623)
  [[GH-2627]](fatih/vim-go#2627)
* Expand completions as snippets when `g:go_gopls_use_placeholders` is set.
  [[GH-2624]](fatih/vim-go#2624)
* Add a new function, `:GoDiagnostics` and an associated mapping for seeing
  `gopls` diagnostics. Because of the performance implications on large
  projects, `g:go_diagnostics_enabled` controls whether all diagnostics are
  processed or only the diagnostics for the current buffer.
  [[GH-2612]](fatih/vim-go#2612)
* Explain how to find and detect multiple copies of vim-go in the FAQ.
  [[GH-2632]](fatih/vim-go#2632)
* Update the issue template to ask for the gopls version and
  `:GoReportGitHubIssue` to provide it.
  [[GH-2630]](fatih/vim-go#2630)
* Use text properties when possible for some highlighting cases.
  [[GH-2652]](fatih/vim-go#2652)
  [[GH-2662]](fatih/vim-go#2662)
  [[GH-2663]](fatih/vim-go#2663)
  [[GH-2672]](fatih/vim-go#2672)
  [[GH-2678]](fatih/vim-go#2678)

BUG FIXES:
* Fix removal of missing directories from gopls workspaces.
  [[GH-2507]](fatih/vim-go#2507)
* Change to original window before trying to change directories when term job
  ends.
  [[GH-2508]](fatih/vim-go#2508)
* Swallow errors when the hover info cannot be determined.
  [[GH-2515]](fatih/vim-go#2515)
* Fix errors when trying to debug lsp and hover.
  [[GH-2516]](fatih/vim-go#2516)
* Reset environment variables on Vim <= 8.0.1831 .
  [[GH-2523]](fatih/vim-go#2523)
* Handle empty results from delve.
  [[GH-2526]](fatih/vim-go#2526)
* Do not overwrite `updatetime` when `g:go_auto_sameids` or
  `g:go_auto_type_info` is set.
  [[GH-2529]](fatih/vim-go#2529)
* Fix example for `g:go_debug_log_output` in docs.
  [[GH-2547]](fatih/vim-go#2547)
* Use FileChangedShellPost instead of FileChangedShell so that reload messages
  are not hidden.
  [[GH-2549]](fatih/vim-go#2549)
* Restore cwd after `:GoTest` when `g:go_term_enabled` is set.
  [[GH-2556]](fatih/vim-go#2556)
* Expand struct variable correctly in the variables debug window.
  [[GH-2574]](fatih/vim-go#2574)
* Show output from errcheck when there are failures other than problems it can
  report.
  [[GH-2667]](fatih/vim-go#2667)

Signed-off-by: Patrick McCarty <[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.

3 participants