-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Feedback needed: ok to drop support for Go in favour of vim-go? #1759
Comments
@jackcohen The |
I would suggest, if vim have means for that, to check for vim-go installed If this is impossible than maybe just leave the checkers disabled by |
@osleg Syntastic checking for Disabling checkers on the other hand might work as far as Thus I'd still prefer to kill these checkers for good. But disabling them should do for now: f280ff2. |
Well in that case it seems like the best decision would be just to |
Another idea would be using a type checker directly: https://godoc.org/golang.org/x/tools/cmd/gotype This is much more faster and maybe it would some of the problems people have with the speed. |
@osleg There is no need to submodule anything, syntastic already has the mechanism of external modules. If you want to adopt some (or all) of the existing Go checkers all you need to do is create a plugin as described in the docs. I'd then remove the checkers from syntastic and add a link to your plugin from the README. @fatih My problem is not that the Now, as I said above, I'd still prefer to get rid of these checkers. Having them adopted by somebody who cares about them would be the preferred solution, of course, but realistically, simply deleting them shouldn't bother too many people either. That part has nothing to do with |
@fatih the main problem with vim-go+syntastic for me was that they fight @lcd047 knowing myself I won't be good maintainer ;) |
I've been using syntastic + vim-go for about a year together. Syntastic's error signs on margins are a wonderful feature vim-go does not have available. The immediate visual feedback this provides is great for users who haven't mastered location lists and associated navigation in Vim. That said, the location list workflow in vim-go (without Syntastic) is probably good enough to fill the need; it's just a bit of a more onerous learning curve. |
I use |
@pdf If somebody who actually uses |
@lcd047 VimScript is not a thing I'm particularly comfortable with, can you describe what that would look like? |
@pdf Each syntastic checker runs an external program with a set of arguments, and gets back a |
@lcd047 if I understand how loclists work based on a quick read of the code, there would be some (relatively minor I think) refactoring involved to be able to return the lists directly. Probably needs some input from @fatih as to whether he'd be interested in taking the changes, and accepting the API dependence. |
Since feedback is wanted: Please don't drop the golang syntax checkers. I love how Syntastic gives me an easy way to run gofmt and golint automatically, without installing that operating system of a plugin called vim-go. I'll admit that Syntastic is also a large plugin, but at least it works for almost every language under the sun whereas vim-go only works for Go. I'm personally okay with removing the "go" syntax checker, though. It's broken anyway in Go 1.7, and I don't see any benefit in it over the "gofmt" checker. I have |
@majewsky what's broken about the go checker in 1.7? |
@bradleyfalzon Errors and warnings are displayed when the source file is opened ( (By the way, I'm actually on Go 1.7.1. Don't know if the .1 makes a difference.) |
@majewsky This is completely unrelated to any particular checker, and it probably has to do with recent changes in Vim and in syntastic. Can you still reproduce the problem with the latest master HEAD? If you can, please open a new issue. |
@lcd047 It is definitely related to the particular checker. No other checker I tested had that problem. However, I have trouble producing a minimal example, so the bug is probably related to the concrete repo I was working on in some way. In any case, I don't want to derail this discussion. If I happen to be able to reproduce the bug after all, I'll make another issue. |
@majewsky Well as far as I can tell syntastic only cares about the result from checkers, nothing else. Errors show up when you open a file, so the Back to the initial topic: if you guys want the |
@lcd047 syntastic + vim-go + go checkers works well for me, please keep it in for others to use too and thank you for the initial support - I know lots of people that also use it, and do think enabling by default is a useful feature. |
@bradleyfalzon The thread at |
I'd hate to lose go support in syntastic. I use a bunch of different languages throughout my day of which Go is only one and I'm heavily relying on syntastic to run checkers on any given filetype. I'm not using vim-go for my go setup but rather have a very limited set of things I just enable (https://github.com/mrtazz/vim-tinygo), as I found it difficult to make vim-go work in a way that kept vim fast and usable for me, which is mostly due to my peculiarities. I can absolutely understand not wanting to continuously work on incompatibilities. Syntastic is gonna continue to be a rock solid foundation for my programming. And vim-go is a fantastic plugin that does a great job. However if deprecating built in Go support frees up time for both maintainers to focus on making their respective plugins better, I think that's worth it. This is mostly to give some feedback, I'm pretty sure there will be an external checker quickly which I'd use then. |
@lcd047 I hope you'll reconsider. I rely on the built-in Sure, it is kind of slow, but so is I actually didn't know there was a problem with Syntastic is the only Vim plugin I've installed, while Go is just one of many languages I use. I rely on the fact that I don't have to configure Syntastic for each particular tool I'm working with. I love how Syntastic offers me a consistent, streamlined syntax checking solution without having me to download a clusterfuck of plugins like Consider this line from
I don't believe that is a sensible default at all. I may have added a package just for one build (like And actually, I don't need 95% of the stuff they provide, and the 5% I need is not enabled by default. I'll need to opt-out from stuff that is enabled by default, and add several lines to my Another thing I like in Syntastic is that there is not much to be broken. Surface area for error is relatively small, in comparison to, say, I've rolled back to 3.7.0 for now. |
@yegortimoshenko Alternatively you could just read the manual ( |
@lcd047 I know how to re-enable the checker, thanks. Not sure why you'd presume otherwise. It's just a) not a sensible default, b) I don't use any of the changes introduced in 3.8.0, c) I keep my |
@yegortimoshenko Then the point of your previous post was... to let us know about you sticking with 3.7.0?
The change addresses a human problem, not a techical one. shrug |
@lcd047 You asked for feedback, right? I told you, in detail, why removing I don't understand your second point. Vim is a human-machine interface, there is no clear distinction between "human" and "technical" problems. |
@yegortimoshenko Perhaps try reading the first post in this thread from this perspective? Anyway, I believe I did receive enough feedback to make a decision. Thank you for your input. |
@lcd047 What's with the attitude? Why would you presume that I haven't followed the discussion? Couldn't imagine that the maintainer of my single favourite Vim plugin is such an asshole. |
@yegortimoshenko there is only one 'asshole' in this thread and it is not lcd047, please take your belligerence elsewhere. |
This discussion got exciting at the point it has been asked about syntastic<->vim-go mapping through a possible vim-go API, sadly that point was lost into emotional chat.... |
@oblitum Working patches are always considered, and almost always appreciated. Sometimes even more than contributions in thread necromancing. 😄 In the mean time, given a choice, don't use syntastic for checking |
@lcd047 haha, right, I agree. I'm going against the advice for now (and experience, I did recall of disabling Syntastic for Go years back for similar problems). I hope that using the |
FWIW, this is my current setup: let g:godef_split = 0
let g:go_fmt_fail_silently = 1
let g:go_list_type = 'quickfix'
let g:syntastic_go_checkers = ['golint', 'govet', 'gometalinter', 'gofmt']
let g:syntastic_go_gometalinter_args = ['--disable-all', '--enable=errcheck'] @majewsky's tip on using |
The problem:
go
checker in syntastic needs to run full builds to do its job. This is problematic in many ways: it's slow, it doesn't adapt well to checking single files (cf. Compiling Conditional Go files #1727), produces spurious object files that are hard to be dealt with (cf. go checker fails - go build -o /dev/null because /dev/null exists & isn't an object file #1436), it complicates handling tests, and generally doesn't fit well with syntastic's model of a checker.go
,gofmt
,golint
,gometalinter
,gotype
, andgovet
can do, only better. It has a lot more features than syntastic. It's specifically designed to work with Go, while syntatic is a little more than a general framework.vim-go
make it problematic for syntastic to work along withvim-go
in the most common configurations (cf. vim-go uses location lists now #1650).vim-go
(cf. this thread).vim-go
's maintainer doesn't use (nor is particularly interested in) syntastic, and syntastic's current maintainer (i.e. yours truly) doesn't use (nor is particularly interested in) either Go, orvim-go
. This makes it problematic to find solutions to reduce frictions between the two plugins.vim-go
already can be configured to show an interface similar to syntastic's (f.i. it has quickfix windows).Proposed solutions:
go
,gofmt
,golint
,gometalinter
,gotype
, andgovet
, and tell people to usevim-go
instead. Sincevim-go
can already do a lot more than syntastic, this shouldn't be a huge loss for anybody. Of course, any of these checkers can still be maintained externally if anybody cares to adopt it.vim-go
's functions. This would be less than trivial, it would take a while to implement (actually I can't guarantee I can manage to summon enough motivation to do it), and it would make syntastic dependant onvim-go
's internals. It would allow people to keep using syntastic's interface though.Does anybody have any strong feelings one way or another? Any other opinions? Other suggestions?
The text was updated successfully, but these errors were encountered: