sourcery
sourcery copied to clipboard
Sourcery doesn't support your editor?
Add a comment here to register interest in Sourcery support for other IDEs.
Or read our docs for how to write an editor plugin using our LSP server
vim/neovim...?
Vim would definitely be a welcomed addition.
Emacs please!
Are you open to people making community plugins? Are there any references for how we might do such a thing with Sourcery?
Are you open to people making community plugins? Are there any references for how we might do such a thing with Sourcery?
It is something we've thought about - We've done the VS Code plugin as a language server so it should certainly be possible. I think we want to nail down the functionality first - we're still in beta so might still be making large changes to how things work.
After an internal discussion we've realised that the API should be stable enough to support community plugins. The Sourcery binary uses LSP so that's not going to change and the core functionality of Sourcery is not going to change much either
@zingbretsen - we would be delighted if you wrote a plugin for emacs. At the moment we have no documentation on how to do this and are not quite clear what documentation would be needed. I'll drop you an email and we can see if we can get something rolling
How about Sublime Text? :)
I use Eclipse + Pydev and believe it's still quite popular. At least it figures in lots Top
I'm using Geany and I feel like a plugin would be a nice addition. If you want to, of course :smile:
:atom: Atom Editor please!
:atom: Atom Editor, please.
Spyder please!
vim/neovim...?
I'm using it via coc.nvim
, it is quite easy to setup:
- Download and extract a release of Sourcery or use
pip install --user sourcery-cli
- Add this to your
coc-settings.json
:
{
"languageserver": {
"sourcery": {
"command": "<Sourcery Directory>/sourcery",
"args": [
"lsp"
],
"filetypes": [
"python"
],
"initializationOptions": {
"token": " <Your Token Here>",
"extension_version": "coc.nvim",
"editor_version": "vim"
},
"settings": {},
"trace.server": "verbose"
}
}
}
- Profit!
PS: This can be Sourcery can be used in any LSP capable editor
Thanks for the instructions on setting it up in Vim @marcoaaguiar.
I've written it up into full install and usage instructions in our wiki.
I'm using @marcoaaguiar's suggestion and when I attempt to run :CocDiagnostics
in a Python file, I see this message:
[coc.nvim] Sourcery sign-up required. Click [here](https://sourcery.ai/download/) for a free token then enter it into the Sourcery section of the [settings](command:workbench.action.openSettings "Open Settings").
I've confirmed that my token is added in languageserver.sourcery.initializationOptions.token
in my coc-settings.json
.
Versions:
- Neovim 0.4.4
- Node.js 10.20.1
- coc.nvim 0.0.79-8da7b2139d
Thanks for raising @bachya. #89 has been raised with a solution for this
How about Sublime Text? :)
Sourcery is now available for Sublime! https://sourcery.ai/blog/sourcery-sublime/
https://nova.app it's the editor by Panic. Same developers who built coda and transmit. Thanks in advance
Atom Editor, please!
If anyone is interested you can use Sourcery with native Neovim LSP. I have the following setup in a file called sourcery.lua
:
local configs = require 'lspconfig/configs'
local util = require 'lspconfig/util'
local server_name = 'sourcery'
configs[server_name] = {
default_config = {
cmd = {server_name, 'lsp'},
filetypes = {'python'},
init_options = {
editor_version = 'vim',
extension_version = 'vim.lsp',
token = '<YOUR_TOKEN>'
},
root_dir = function(fname)
local root_files = {
'pyproject.toml',
'setup.py',
'setup.cfg',
'requirements.txt',
'Pipfile'
}
return util.root_pattern(unpack(root_files))(fname) or
util.find_git_ancestor(fname) or util.path.dirname(fname)
end
},
docs = {
description = [[
https://github.com/sourcery-ai/sourcery
Refactor Python instantly using the power of AI.
]]
}
}
Mainly based off the pyright config from here.
In your main config just add
require('sourcery')
require('lspconfig').sourcery.setup {}
@cjber would you mind elaborating one would choose the native Neovim LSP integration over the coc config approach from the wiki? Improved integration, improved performance, any other reasons?
@fvdnabee I believe it's probably mostly personal preference, although native LSP may be slightly faster. I have switched over to fully use native LSP so wanted to integrate sourcery that way and luckily it's easy to use currently unsupported language servers.
Just going to leave this here: if anyone struggles to get Sourcery working on Arch as I was, just getting cryptic error messages from neovim exit code 127
, it's because Arch is missing libcrypt.so.1. You can get round this by installing ibxcrypt-compat
I couldn't get the Sublime Text to work, perhaps because the instructions are out of date.