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

What is the difference between coc and ale? #348

Closed
glepnir opened this issue Jan 16, 2019 · 15 comments
Closed

What is the difference between coc and ale? #348

glepnir opened this issue Jan 16, 2019 · 15 comments

Comments

@glepnir
Copy link
Contributor

glepnir commented Jan 16, 2019

Is your feature request related to a problem? Please describe.

I am now coc and ale in use, I don't know how to choose now, they can be checked very well, I want to know the difference between coc and ale in inspection. How do I choose?

@chemzqm
Copy link
Member

chemzqm commented Jan 16, 2019

Why you need to choose? They can work together.

There is coc.preferences.diagnostic.displayByAle setting if you want ale to handle diagnostics.

@chemzqm
Copy link
Member

chemzqm commented Jan 16, 2019

Read https://github.com/neoclide/coc.nvim#why if you want to compare LSP features.

@Frydac
Copy link

Frydac commented Jan 16, 2019

From my perspective, as a relative new user of both ALE and coc (I use it for C++/Ruby/Python/VimL):
I think the lsp completion/goto is handled much better in coc: I especially like that it adds more sources than only the language servers (like adding symbols in open documents, which I don't think ALE supports), it has fuzzy search in the completion candidates (absolute must imo). Coming from youcompleteme there are some minor things I miss (though maybe because of my ignorance, or because the specific lsp server I'm using does not support it), but generally it feels very similar, or better. And coc supports languagues like Ruby easily while I never succeeded to get proper ruby completion in youcompleteme (which atm does not support lsp).
ALE on the other hand has first class support for linters (not using lsp), which is not what coc aims at (afaik). And there are many, many linters available in ALE which do not support lsp.
I use both (ALE only in Ruby/Python though), and enjoy them very much :) And I didn't even know about the displayByAle option..

@glepnir
Copy link
Contributor Author

glepnir commented Jan 17, 2019

Why you need to choose? They can work together.
There is coc.preferences.diagnostic.displayByAle setting if you want ale to handle diagnostics.

The emoji is the detection of ALE, and the detection of the unfinished statement mai is on the next line. Instead of which line is not completed, the COC does this very well. I am wondering if the grammar detection of COC can make me replace ale
11

Another question, warning that it should be silent, should not have any awareness,I set coc.preferences.diagnostic.displayByAle, if I need to cancel some settings of my ale, let ale accept the coc send?
2233

@glepnir
Copy link
Contributor Author

glepnir commented Jan 17, 2019

From my perspective, as a relative new user of both ALE and coc (I use it for C++/Ruby/Python/VimL):
I think the lsp completion/goto is handled much better in coc: I especially like that it adds more sources than only the language servers (like adding symbols in open documents, which I don't think ALE supports), it has fuzzy search in the completion candidates (absolute must imo). Coming from youcompleteme there are some minor things I miss (though maybe because of my ignorance, or because the specific lsp server I'm using does not support it), but generally it feels very similar, or better. And coc supports languagues like Ruby easily while I never succeeded to get proper ruby completion in youcompleteme (which atm does not support lsp).
ALE on the other hand has first class support for linters (not using lsp), which is not what coc aims at (afaik). And there are many, many linters available in ALE which do not support lsp.
I use both (ALE only in Ruby/Python though), and enjoy them very much :) And I didn't even know about the displayByAle option..

Thank you very much for your comments. I will consider it carefully.

@chemzqm
Copy link
Member

chemzqm commented Jan 17, 2019

I am wondering if the grammar detection of COC can make me replace ale

No, coc depending on diagnostics from language server, ale have more linters.

Another question, warning that it should be silent, should not have any awareness

I can't understand.

if I need to cancel some settings of my ale, let ale accept the coc send?

It should be on by default.

@glepnir
Copy link
Contributor Author

glepnir commented Jan 17, 2019

It should just warn me, instead of prompting me to press enter to continue, I have not encountered such a problem before, maybe what is the coc check? The default setting is that I don't need to set linter in ale?

@chemzqm
Copy link
Member

chemzqm commented Jan 17, 2019

instead of prompting me to press enter to continue

It's problem of your vim configuration, you should use set cmdheight=2 set shortmess=aFc to avoid this kind of problem, that message is not from coc.

The default setting is that I don't need to set linter in ale?

What do you mean? What default setting? You don't need linter for displayByAle to work.

@glepnir
Copy link
Contributor Author

glepnir commented Jan 17, 2019

instead of prompting me to press enter to continue

It's problem of your vim configuration, you should use set cmdheight=2 set shortmess=aFc to avoid this kind of problem, that message is not from coc.

The default setting is that I don't need to set linter in ale?

What do you mean? What default setting? You don't need linter for displayByAle to work.

不行了谷歌翻译真的孤儿。。我在ale中设置了linter,ale提供很多linter,coc使用的语言server带的linter进行检测,就像我第一张图那样,侧边栏显示了很多linter的提示符包括ale和coc,有没有使他们变得一致的办法?而不是显示那么多提示符,我设置了disablebyAle 之后,我发现ale的提示好像失效了?因为它显示的是coc的默认提示符,ale的提示符我设置成了emoji。
1222

@glepnir
Copy link
Contributor Author

glepnir commented Jan 17, 2019

另一个问题,我装了coc-neosnippet,它是基于Shougo/neosnippet的coc版本吗?还是它是一个中间件?安装coc-neosnippet之后我并没有得到任何的代码片段。

@chemzqm
Copy link
Member

chemzqm commented Jan 17, 2019

你自己研究吧,这里只解决 bug。

@glepnir
Copy link
Contributor Author

glepnir commented Jan 17, 2019

你自己研究吧,这里只解决 bug。

好吧 赵大佬。。很少看你在知乎活跃了。期待有个中文网啊。。

@jottr
Copy link

jottr commented Aug 6, 2019

@taigacute @chemzqm please use English.

@Adityashaw
Copy link

Read https://github.com/neoclide/coc.nvim#why if you want to compare LSP features.

This section seems to be missing.

@creativecomposer
Copy link

I believe it is a good idea to use both the plugins - Asynchronous Lint Engine (ALE) for it's linting functionality and Conqueror of Completion (coc.nvim) for its completion functionality.

See the ALE FAQ "How can I use ALE and coc.nvim together?" at https://github.com/dense-analysis/ale#faq-coc-nvim

It explains nicely that
"If you want to run external programs on your files to check for errors, and also use the most advanced IDE features, you might want to use both plugins at the same time."

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

No branches or pull requests

6 participants