Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
849 stars 194 forks source link

Integrate better text editor #31

Open psifertex opened 8 years ago

psifertex commented 8 years ago

From @psifertex on May 5, 2015 14:7

Copied from original issue: Vector35/binaryninja#13

psifertex commented 7 years ago

monaco is looking pretty attractive.

KyleMiles commented 3 years ago

Line numbers in "Assemble" window and "Compile C Source" would be good, just to call out one specific feature.

0xdevalias commented 2 months ago

Curious if this is anywhere in mind for the 'nearish' (in a fairly hand wavy way) future? I suspect it would be a pretty big effort to implement it; but I can imagine so many powerful features that could come from being able to use something like monaco as the base for the main code views/etc.


Edit: Saw on another issue (Ref) that the Binary Ninja UI is implemented in a mix of Qt/C++, it got me wondering if/how easy it would be to integrate monaco with that; which turned up the following on a quick google search (more for curiosity's sake than anything else):

psifertex commented 2 months ago

The QWebEngine solution isn't an option unfortunately as we no longer embed it and it makes the install significantly bigger.

It's not on the immediate roadmap but I would sure like it too as it would improve the snippets plugin a ton.

That said, I suspect we will implement it eventually as we need it for something else in a core feature or if we find an implementation we can easily take advantage of.

0xdevalias commented 2 months ago

@psifertex True true, that makes sense. Another (theoretical) method I found of embedding it was via CEF or similar; but presumably that would also massively add to the install size as well:


I imagine it would take a decent bit of refactoring effort to do so, but I think having monaco (or something equally as powerful) as the main 'Linear' panel view would unlock so many cool UX potentials.