Andreas Kling
0604fcf9fd
HackStudio: Make CppTokens have (line,column) positions
...
These are infinitely more useful than raw indices into the input text.
2019-10-25 21:07:45 +02:00
Andreas Kling
307cbf83c3
HackStudio: Start building a C++ lexer to help with syntax highlighting
2019-10-25 19:52:44 +02:00
Andreas Kling
f256c55e8d
HackStudio: Unbreak jumping to a search result
...
I broke this when factoring out the find-in-files widget into its own
class. This patch adds a main_editor() global getter for grabbing at
the main GTextEditor from wherever you are.
2019-10-25 10:25:42 +02:00
Andreas Kling
4e25d69dba
HackStudio: Move the ProcessStateWidget below the TerminalWidget
...
This looks a bit less janky when hiding/unhiding.. :^)
2019-10-24 22:32:27 +02:00
Andreas Kling
deabc7e13b
HackStudio: Bring up the console when doing a "build" or "run"
...
We most likely want to see what comes out on the console when starting
one of these actions.
2019-10-24 22:28:36 +02:00
Andreas Kling
84a2208b5c
HackStudio: Add some toolbar icons to liven up the UI a bit :^)
2019-10-24 22:25:26 +02:00
Andreas Kling
f61622a501
HackStudio: Hide the ProcessStateWidget while no process is running
2019-10-24 21:04:13 +02:00
Andreas Kling
bced810880
HackStudio: Show the slave pty's PGID in the ProcessStateWidget
...
This is the closest I could figure out how to get to what's actively
running on the terminal view at the moment.
Perhaps we can bundle up every process with the same tty and sum it
all up somehow. I'm not sure.
2019-10-24 20:56:13 +02:00
Andreas Kling
272317bce2
HackStudio: Add a widget showing the state of console's running process
...
We now have a little widget that sits above the terminal view in the
build/application console. When a child process is running, we show its
PID, name, scheduling counter, and amount of resident memory in a live
little overview.
This is not working right just yet, since we don't know how to get to
the actually active PID on the TTY. Or, well, we find the active PID by
looking at the PGID of our fork()ed child.
This manages to find children spawned by Shell, but not children
spawned by make, for instance. I need to figure out how to find those.
2019-10-24 20:21:43 +02:00
Andreas Kling
2260190f39
HackStudio: Move "find in files" widget to its own file/class
...
Instead of clogging up main.cpp with find-in-files functionality,
put it in a FindInFilesWidget class in a separate file.
2019-10-23 21:13:08 +02:00
Andreas Kling
2d460b504f
HackStudio: Make the "find in files" widget more keyboard-accessible
...
Have Ctrl+Shift+F open the find-in-files widget and focus the text box
so you can start entering text right away.
Also make it do a search when you press the return key.
2019-10-23 21:02:02 +02:00
Andreas Kling
d3e81d2ba8
HackStudio: Start adding a "find in files" function
...
Projects now contain a set of TextDocument objects. Each TextDocument
represents a member file in the project. TextDocuments may not have
their file contents loaded at all times, but they will be loaded on
demand when calling TextDocument::contents().
"Find in files" works by iterating over the documents in the project
and calling find(needle) on each one. The return value from find() is
a vector of line numbers where the needle was found.
This is obviously going to need a bunch more work. :^)
2019-10-23 20:54:41 +02:00
Andreas Kling
5f5f837ec5
HackStudio: Put the console terminal wrapper in a GTabWidget
...
This will make it straightforward to add more things at this level.
2019-10-23 19:52:34 +02:00
Andreas Kling
29669ba661
HackStudio: Add a simple "Save" action
...
Pressing Ctrl+S now saves the currently open file to disk.
2019-10-22 22:25:05 +02:00
Andreas Kling
708543c3d6
HackStudio: Add a simple "Run" action
...
Ctrl+R will now execute "make run" in the project directory. :^)
2019-10-22 22:18:46 +02:00
Andreas Kling
654ffdef91
HackStudio: Add a simple "Build" action
...
Pressing Ctrl+B now invokes "make" in the project directory and routes
the output from the make command to the little terminal widget.
2019-10-22 22:15:43 +02:00
Andreas Kling
a6b153abf1
HackStudio: Show the currently open file in bold (in the project list)
...
Also import a little default C++ project called "little" :^)
2019-10-22 21:38:58 +02:00
Andreas Kling
2638a94094
HackStudio: Add a simple app icon and some initial menus
2019-10-21 22:13:20 +02:00
Andreas Kling
3fa16dfae2
HackStudio: "Go to line" was mixed up about 0/1-based line numbers
2019-10-21 20:33:47 +02:00
Andreas Kling
d1916700ea
HackStudio: Restrict the "Go to line" shortcut to the text editor
...
We don't want Ctrl+L presses to be snatched while we're in the embedded
terminal, for example. :^)
2019-10-21 20:31:32 +02:00
Andreas Kling
da0958a882
LibVT: Make TerminalWidget's automatic size policy updates optional
...
When embedding a TerminalWidget, you might not want it to automatically
update its own size policy based on the exact terminal buffer size.
This behavior is now passed as a flag to the TerminalWidget constructor
which makes it behave nicely both inside HackStudio and in Terminal.
2019-10-21 20:28:30 +02:00
Andreas Kling
43ccb28852
HackStudio: Embed a Terminal widget below the text editor
...
This will be very useful for running (and interacting with) programs
after we build them. :^)
2019-10-21 20:17:32 +02:00
Andreas Kling
c1f72e0bbf
HackStudio: Show line numbers in the text editor by default
2019-10-21 19:03:09 +02:00
Andreas Kling
7eed2e968c
HackStudio: Show cursor line and column in the statusbar
2019-10-21 18:50:24 +02:00
Andreas Kling
0311e8d50a
HackStudio: Start working on an IDE for SerenityOS
...
This will be fun. :^)
2019-10-21 18:46:55 +02:00
Andreas Kling
4bfd4dc6c7
AK: Remove empty files JsonArray.cpp and JsonObject.cpp
2019-10-01 11:24:54 +02:00
Andreas Kling
d5f1c57fe2
Inspector: Fix bad RemoteObjectGraphModel::parent_index()
...
We were returning bogus indices and also failing to handle parents that
are roots.
This was visible in the broken line trees drawn by GTreeView.
2019-09-23 20:29:03 +02:00
Andreas Kling
d6abfbdc5a
LibCore: Remove ObjectPtr in favor of RefPtr
...
Now that CObject is fully ref-counted, just use RefPtr everywhere! :^)
2019-09-22 00:31:54 +02:00
Andreas Kling
8d550c174e
LibCore: Convert CFile to ObjectPtr
2019-09-21 20:50:06 +02:00
Andreas Kling
defafd72bc
LibGUI: Convert custom widgets and subclasses to ObjectPtr
2019-09-21 20:04:00 +02:00
Andreas Kling
409494193e
LibGUI: Convert remaining random little things to ObjectPtr
2019-09-21 19:40:14 +02:00
Andreas Kling
45cfd57f6e
GButton: Convert most code to using ObjectPtr for GButton
2019-09-21 19:28:28 +02:00
Andreas Kling
7584480f62
LibGUI: Convert GWindow to ObjectPtr
2019-09-21 18:34:06 +02:00
Andreas Kling
ff6ce422dd
LibGUI: Convert GWidget to ObjectPtr
2019-09-21 17:05:35 +02:00
Andreas Kling
7aaad27778
LibGUI: Convert GSlider to ObjectPtr
2019-09-21 16:33:53 +02:00
Andreas Kling
ceb5508fea
LibGUI: Convert GProgressBar to ObjectPtr
2019-09-21 16:31:12 +02:00
Andreas Kling
b78225941d
LibGUI: Convert GSpinBox to ObjectPtr
2019-09-21 16:15:11 +02:00
Andreas Kling
83b5f6c11a
LibGUI: Convert GGroupBox to ObjectPtr
2019-09-21 16:13:33 +02:00
Andreas Kling
4f4438c04c
LibGUI: Convert GSplitter to ObjectPtr
2019-09-21 16:11:02 +02:00
Andreas Kling
efb8f9d538
LibGUI: Convert GTreeView to ObjectPtr
2019-09-21 16:06:43 +02:00
Andreas Kling
e7b55037f4
LibGUI: Convert GTableView to ObjectPtr
2019-09-21 16:03:59 +02:00
Andreas Kling
93851c3832
LibGUI: Convert GTextBox, GTextEditor and GResizeCorner to ObjectPtr
2019-09-21 15:46:47 +02:00
Andreas Kling
bce58bbbca
LibGUI: Convert GScrollBar to ObjectPtr
2019-09-21 15:25:08 +02:00
Andreas Kling
2e76ac3aff
FormCompiler: Generate code that uses ObjectPtr for widgets
2019-09-21 15:25:08 +02:00
Andreas Kling
c7437f9caa
LibGUI: Convert GLabel to ObjectPtr
2019-09-21 15:25:08 +02:00
Andreas Kling
c83da29a9d
LibCore: Convert CLocalSocket to ObjectPtr
2019-09-21 15:25:08 +02:00
Andreas Kling
664dff0581
VisualBuilder: Disallow moving managed widgets with the arrow keys
2019-09-17 22:41:42 +02:00
Andreas Kling
4f184114de
VisualBuilder: Add icons for the layout menu actions
2019-09-17 22:39:48 +02:00
Andreas Kling
9d460d55d1
VisualBuilder: Don't allow moving/resizing widgets that are in a layout
...
Also paint these widgets' grabbers differently to make it stand out
visually which widgets have managed geometry. :^)
2019-09-17 22:17:28 +02:00
Andreas Kling
5e439bb3c8
VisualBuilder: Fix hit testing for composite widgets
...
When we ask LibGUI to hit test, it may return a subwidget of a widget
composed of many smaller widgets. In those cases we need to locate the
appropriate corresponding VBWidget for the composite widget.
2019-09-17 22:17:28 +02:00