I'd just like to note that I really like this idea, and would really love to see it happen --- I tried to use Jupyter Notebook a while back, but got bogged down for various reasons, and having its functionalities as a stand-alone desktop app which would make nice PDFs would suit my needs quite nicely.
On Thu, Jun 20, 2019 at 10:42 AM Jason Sun <ds...@cornell.edu> wrote: > I thought about this long and hard. It is possible to extend Lyx's > functionality beyond the document processer. With the help you pybind 11 > and Qt5, I think is it possible to implement some of the IDE features(think > RStudio) in LyX. This would be extremely helpful in writing scientific > document. Currently, my workflow is to write code in VS Code/Emacs and copy > and paste everything back and forth between LyX and code editor. > > * It is not terribly cumbersome. But if we can development LyX into > something like RStudio, it would definitely save some time. > > * Because LyX has support for knitr. Provided the script editor QtWidget > and console Widget has been implemented, it won't be very hard to build a > communication mechanism between the IDE portion and the LyX main > buffer&main view portion. This is a little bit like Jupyter Console (think > IPython), but with much better Latex support. > > My rough idea: > > * I think the GUI and UI design part it not so hard. We could just create > another ViewSource-like class that inherit DockView but with editable text > field. As for console portion, there are quite a few example QtConsole, are > we could develop our own wheel. I remember in my undergrad OS class. the > first project was to implement a terminal-ish stuff. As far as I am > concerned it is not terribly difficult as long as the signals child > processes are handled right. > > * The major work should be in the building a python repl inside LyX. I > think LyX has its own Python for some of the scripting procedures, but it > is not ideal to use this one. The better solution, IMO, is to enable > loading the Python Interpreter the user assigned. This gives a larger > flexibility for various reasons (say, some user might want to use > TensorFlow. This would be greatly helpful). > > * with pybind11, it is not really hard to open up a python interpreter > inside c++ applications. The developers of pybind11 gave various examples > on how to do it. Moreover, pybind11 is a header only library, which makes > it easy to be built into other applications. > > > These are my thoughts so far. Would be nice to hear some of your ideas on > this. > > > Jason Sun > Cornell University >