Comments (18)
What's the use case? Current GSList exists only as an implementation detail (and works compatibly with GList due to common layout)
from gtk.jl.
https://developer.gnome.org/gtksourceview/stable/GtkSourceCompletionContext.html
needs a GList* proposals
But what means common layout? The prev
pointer is missing.
from gtk.jl.
If you don't need to read prev, it doesn't matter
from gtk.jl.
Thats true. But if gtk_source_completion_context_add_proposals
does read prev it makes bang...
from gtk.jl.
Yep. But since gslist is currently an implementation detail, it does not correctly create lists from Julia->C only C->Julia.
from gtk.jl.
If I rewrite GList using the new mutable interface, this can be done in a convenient way. I'll try after the weekend when I have more computer access
from gtk.jl.
Sounds great!
I am still exploring the API of GtkSourceView and hopefully I get code completion working which seems to require #56. Here is a screenshot of a test program using GtkSourceView in Julia:
from gtk.jl.
GtkRadioToolButton
takes a GSList
pointer as argument
from gtk.jl.
technically yes, but in actual usage, it doesn't seem to be very logical. see existing GtkRadioButton Julia wrapper
from gtk.jl.
Forgot to mention: having an IDE written entirely in Julia (+ fairly standard libraries) is AWESOME.
from gtk.jl.
:-) Still exploring if this is actually feasible. The natural thing to tackle this would be to use a mature language/toolkit (e.g. C++/Qt). But this simply would be a lot less fun than doing it in Julia ;-)
from gtk.jl.
I figured this was your master plan :-) π―
Doing it all in Julia may make it easier to interact with the debugger, when that lands.
And if you want to tackle it in Qt, how will that be different from Julia Studio?
from gtk.jl.
@timholy Right. Julia Studio took the complete other approach. Take something working and strip down to make it a Julia IDE. This is great for getting the first 80%. But when it gets to the details this can get quite complicated.
On the other hand the Julia/Gtk.jl also has many pitfalls:
- Non-blocking UI (No threading in Julia)
- Getting Jameson to land precompiled packages ;-)
- Getting Gtk compiled on all platforms including third-party libraries will be more complicated.
However, I am still not entirely sure how much energy I can put into it and in what form to release it.
from gtk.jl.
2 and 3 will clearly come with time. The first is a deeper problem. But, could you simply run the GUI in a second process (addprocs
)?
@vtjnash, precompiled packages are not necessarily your burden alone to carry! I like the idea of trying to get a GSoC student to tackle it, unless you don't like that idea (you would surely have to answer some questions...).
from gtk.jl.
Doing it in another process makes GUI programming a lot more complicated. Using@async
kind of works but there are things that can block the schedular (e.g. Pkg.calls).
Maybe we should have an examples/
folder in Gtk.jl where I can put a typical example of something one would typically solve with threads. Then we can discuss this hands on. And in the end we need documentation in the form of examples for such common things anyway.
from gtk.jl.
Doing it with threads is painful since you have to wrap most things in gdk_threads_enter()/gdk_threads_leave()
, or just use a single thread to access the GUI, as which point it probably might as well be in a separate process (e.g. addprocs
)
I've got some support for precompiled packages in my recent pull request :). Of course, if we can get someone to tackle the issues blocking the ability to do more caching such as JuliaLang/julia#265 and JuliaLang/julia#1268, all the better.
from gtk.jl.
I am not totally sure how important threads are. In my IDE project (https://github.com/tknopp/Julietta.jl) it seems to be not a big issue as I let the terminal run in a different process. And in general the @async method seems to work better than I thought.
Package precompilation is absolutely awesome. This is one of the last showstoppers in Julia currently. [ +Debugger +AnAwsomeIDE :-) ]
from gtk.jl.
Exciting stuff, @vtjnash! And I agree with your sense that these are among the very few remaining big-ticket items, @tknopp.
from gtk.jl.
Related Issues (20)
- Julia Crash on GTK combo HOT 2
- Connecting event to calendar HOT 4
- CssProviderLeaf performance HOT 2
- Where is gdk library HOT 1
- Julia aborts from a Scale on mac HOT 8
- When CSS on screen has effect?
- In Ubuntu open_dialog() does not close after completing its action
- Crash on load with version 1.2.3 or 1.3.0 on Windows HOT 3
- Error in running finalizer
- issues with headless machine precompile HOT 1
- ComboBoxText no longer working under Julia 1.8.5 HOT 3
- Segfault with showall on trivial glade file on M1 Mac
- Is there a Julia binding to the GtkLayout container?
- circular dependency with libtiff_jll 4.5 HOT 1
- Apple silicon M2 Gtkscale error
- GtkSpinButton MethodError
- race conditions in finalizers HOT 1
- sigatomic_end called in non-sigatomic region HOT 1
- Gtk not working on MacOS Sonoma 14.4 or 14.4.1 HOT 1
- Canβt get to Glade
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gtk.jl.