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

Sourcery doesn't support your editor? #43

Open
Hellebore opened this issue May 7, 2020 · 26 comments
Open

Sourcery doesn't support your editor? #43

Hellebore opened this issue May 7, 2020 · 26 comments
Labels
enhancement New feature or request

Comments

@Hellebore
Copy link
Collaborator

Hellebore commented May 7, 2020

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

@Hellebore Hellebore pinned this issue May 7, 2020
@hedyhli
Copy link

hedyhli commented May 30, 2020

vim/neovim...?

@collinarnett
Copy link

Vim would definitely be a welcomed addition.

@zingbretsen
Copy link

Emacs please!

@zingbretsen
Copy link

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

@Hellebore
Copy link
Collaborator Author

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 brendanator added the enhancement New feature or request label Jun 4, 2020
@brendanator
Copy link
Collaborator

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
Copy link

isukrit commented Jun 7, 2020

How about Sublime Text? :)

@PhilipLacombe
Copy link

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

@CartoonFan
Copy link

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

@weiji14
Copy link

weiji14 commented Jun 22, 2020

:atom: Atom Editor please!

@f0rest8
Copy link

f0rest8 commented Jul 4, 2020

:atom: Atom Editor, please.

@carlesilla
Copy link

Spyder please!

@marcoaaguiar
Copy link

marcoaaguiar commented Oct 15, 2020

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
Copy link
Collaborator

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
Copy link

bachya commented Oct 22, 2020

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

@brendanator
Copy link
Collaborator

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

@muhammedfurkan
Copy link

notepad++

@Hellebore
Copy link
Collaborator Author

How about Sublime Text? :)

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

@Shivam-Agrawal-e2684
Copy link

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

@diego021
Copy link

diego021 commented Mar 5, 2021

image
Atom Editor, please!

@cjber
Copy link

cjber commented Sep 10, 2021

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
Copy link

fvdnabee commented Oct 1, 2021

@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
Copy link

cjber commented Oct 1, 2021

@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
Copy link

silentjay commented Jun 7, 2022

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
Copy link

reagle commented Mar 1, 2023

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

@brendanator brendanator unpinned this issue Nov 17, 2023
@holmanb
Copy link

holmanb commented Jun 4, 2024

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.

@ruancomelli ruancomelli pinned this issue Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests