sourcery-ai / sourcery

Instant AI code reviews
https://sourcery.ai
MIT License
1.51k stars 65 forks source link

Sourcery doesn't support your editor? #43

Open Hellebore opened 4 years ago

Hellebore commented 4 years ago

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

hedyhli commented 4 years ago

vim/neovim...?

collinarnett commented 4 years ago

Vim would definitely be a welcomed addition.

zingbretsen commented 4 years ago

Emacs please!

zingbretsen commented 4 years ago

Are you open to people making community plugins? Are there any references for how we might do such a thing with Sourcery?

Hellebore commented 4 years ago

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.

brendanator commented 4 years ago

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

isukrit commented 4 years ago

How about Sublime Text? :)

PhilipLacombe commented 4 years ago

I use Eclipse + Pydev and believe it's still quite popular. At least it figures in lots Top best Python IDE's ;-)

CartoonFan commented 4 years ago

I'm using Geany and I feel like a plugin would be a nice addition. If you want to, of course :smile:

weiji14 commented 4 years ago

:atom: Atom Editor please!

f0rest8 commented 4 years ago

:atom: Atom Editor, please.

carlesilla commented 3 years ago

Spyder please!

marcoaaguiar commented 3 years ago

vim/neovim...?

I'm using it via coc.nvim, it is quite easy to setup:

  1. Download and extract a release of Sourcery or use pip install --user sourcery-cli
  2. 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"
        }
    }
}
  1. Profit!

PS: This can be Sourcery can be used in any LSP capable editor

brendanator commented 3 years ago

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.

bachya commented 3 years ago

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:

brendanator commented 3 years ago

Thanks for raising @bachya. #89 has been raised with a solution for this

muhammedfurkan commented 3 years ago

notepad++

Hellebore commented 3 years ago

How about Sublime Text? :)

Sourcery is now available for Sublime! https://sourcery.ai/blog/sourcery-sublime/

Shivam-Agrawal-e2684 commented 3 years ago

https://nova.app it's the editor by Panic. Same developers who built coda and transmit. Thanks in advance

diego021 commented 3 years ago

image Atom Editor, please!

cjber commented 2 years ago

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 {}
fvdnabee commented 2 years ago

@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?

cjber commented 2 years ago

@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.

silentjay commented 2 years ago

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

reagle commented 1 year ago

I couldn't get the Sublime Text to work, perhaps because the instructions are out of date.

holmanb commented 1 month ago

The sourcery docs suggest using COC for neovim. COC predated neovim's native LSP support, but many new users are using native LSP for better performance, configurability, integration with other neovim plugins outside of the COC project. Neovim's native LSP support has matured much in the last few years.

Native LSP is supported and documented here. A separate page for Neovim's native LSP support in the getting started docs would be more inviting to new users.