I also think it would be great if Leo could use neovim for the editing
experience.

This project
https://github.com/neovim/python-client

says:

You can embed neovim into your python application instead of binding to a
running neovim instance.

>>> from neovim import attach
>>> nvim = attach('child', argv=["/bin/env", "nvim", "--embed"])

Not sure if that works with QT

https://gitlab.com/Muream/neovim-pyqt
seems to subclass a QT class to provide neovim in a QT window


++++++++++++++++++++++++
import PyQt5.QtWidgets as QtWidgets

class NeovimWindow(QtWidgets.QMainWindow):

    def __init__(self, nvim):
        super().__init__()
        self.nvim = nvim

++++++++++++++++++++++++++
++++++++++++++++++++++++++
import sys
import PyQt5.QtWidgets as QtWidgets
import ui.window as _window
from neovim import attach

def spawn_nvim():
    nvim_argv = ['nvim', '--embed']
    nvim = attach('child', argv=nvim_argv)
    print(nvim)
    return nvim

def main():
    app = QtWidgets.QApplication(sys.argv)
    nvim = spawn_nvim()
    window = _window.NeovimWindow(nvim)
    window.show()
    app.exec_()

if __name__ == '__main__':
    main()
++++++++++++++++++++++++++


On Tue, Oct 9, 2018 at 10:17 AM 'tfer' via leo-editor <
[email protected]> wrote:

>
>
> On Tuesday, October 9, 2018 at 4:48:06 AM UTC-4, Edward K. Ream wrote:
>>
>> On Mon, Oct 8, 2018 at 2:47 PM 'tfer' via leo-editor <
>> [email protected]> wrote:
>>
>> So one idea talked about here is to run the IDE as a separate, possibly
>>> browser based process.  I propose an inversion of this, run Leo as the
>>> separate process, (Leobridge++), then leave all the fiddly UI bits (like
>>> completions), to what ever editor you're using as a graphical front end.
>>>
>>
>> It's an interesting dream. See below.
>>
>> Some of the work being done in VScode caused me to have  the realization
>>> that such an integration may not be as hard as we thought it might be.
>>> Think of it this way, editors are built to work on files, well let Leo be
>>> the file system!  All you need is a tree-like browser in your editor to get
>>> at the "files", ie Leo's nodes.
>>>
>>> Emacs, Vim, VScode all have tree-like file browsers, they just need to
>>> be "re-plumbed" to get Leo to open the selected node as if it were a file,
>>> (then save any edits back to Leo).  It may even be possible to have that
>>> plumbing be very dumb, just ship the outline navigation commands to Leo and
>>> have it send the resulting outline tree to the editor to "paint" rather
>>> that duplicate all the outline handling code in the editor.
>>>
>>
>> This would be just the tip of the icebersig.  One needs a way of running
>> python code from within the editor, and the python code must interact with
>> the re-plumbed outline pane.
>>
>> Yes there would be a lot of fiddly bits and duplication of Leo's logic to
> handle the outline tree *in the editor,* but I'm suggesting something
> different here.  Let Leo handle all that and ship the current state of the
> of the outline pane to the editor as just data, so it is just concern with
> the rendering of it, much as we do when we hand off the outline pane data
> to QT.
>
> I made things too simple when I said Leo would act as the file system for
> the editor we hook it up to.  It does that but also responds to commands,
> even synthetic keystrokes sent to it by the editor.  It also responds to
> information request, e.g. "what language should I consider this node to be
> written in?".
>
> So we need a rpc channel between the two, neovim has one built in, they
> use one called 'msg-pack'.
>
> VScode is based on electron/node.js.  Perhaps VScode could emulate one end
>> of a yoton connection.  (I'm never sure whether it would be a client or
>> server.)  This would be similar to the emacs/pymacs bridge
>> <http://www.google.com/url?q=http%3A%2F%2Fleoeditor.com%2Femacs.html%23controlling-leo-from-emacs-using-pymacs&sa=D&sntz=1&usg=AFQjCNH2Di1EzkkhFYQu4TOjtlZFGtW1VA>,
>> which is just a few lines of elisp.
>
>
> Interestingly I find myself trying Emacs again, (with Evil-Mode for sane
> keybinding ;-), just to get Org-Mode.
>
>
>> Edward
>>
> --
> You received this message because you are subscribed to the Google Groups
> "leo-editor" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/leo-editor.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to