summaryrefslogtreecommitdiff
path: root/DevTools
AgeCommit message (Collapse)Author
2019-11-06LibHTML: Rename parse_html() => parse_html_document()Andreas Kling
2019-11-06Revert "LibHTML: Rename parse_html() => parse_html_document()"Andreas Kling
This reverts commit f6439789db9c02216baabb197017c7a79a63ba04. Oops, I committed unrelated changes here, let me clean that up..
2019-11-06LibHTML: Rename parse_html() => parse_html_document()Andreas Kling
2019-11-05HackStudio: Update the "remove current editor" action enabled stateAndreas Kling
This action should not be enabled when there is only one editor open, since you are not allowed to be editor-less.
2019-11-05HackStudio: Allow removing the current editor with Alt+Shift+EAndreas Kling
Note that you are not allowed to remove the very last editor. These keybinds are all temporary while I figure out what the right ones should be. I'm not exactly sure how, but it'll reveal itself. :^)
2019-11-05HackStudio: Allow switching between editors with Ctrl+E / Ctrl+Shift+EAndreas Kling
2019-11-05HackStudio: Allow adding more editors by pressing Ctrl+Alt+EAndreas Kling
We also now start out with a single editor, instead of two. :^)
2019-11-05HackStudio: Put annoying debug spam behind EDITOR_DEBUGAndreas Kling
2019-11-05HackStudio: Don't parse documentation if already parsedJoão Paulo Pulga
2019-11-01HackStudio: Use GTextDoument::find_all() to implement find-in-filesAndreas Kling
This fixes the bug seen in my monthly OS update video, where we'd look through a stale copy of each file, instead of the potentially edited version in the GTextDocument. Search results are now also represented as a full GTextRange, and when you jump to a search result, we select the whole matching range. :^)
2019-11-01HackStudio: Rename TextDocument => ProjectFileAndreas Kling
TextDocument was not the right name, and got even more confusing with the addition of GTextDocument in LibGUI.
2019-10-30HackStudio: Show documentation preview in tooltip on identifier hoverAndreas Kling
When hovering over a C++ token that we have a man page for, we now show the man page in a tooltip window. This feels rather bulky at the moment, but the basic mechanism is quite neat and just needs a bunch of tuning.
2019-10-28HackStudio: Add little icons for ".cpp" and ".h" filesAndreas Kling
This makes it easier to tell them apart in locator suggestions. :^)
2019-10-28HackStudio: Remove unnecessary Locator::keydown_event()Andreas Kling
2019-10-28HackStudio: Allow opening a Locator suggestion by double-clicking itAndreas Kling
2019-10-28HackStudio: Scroll the locator suggestions when navigating with arrowsAndreas Kling
2019-10-28HackStudio: Start working on a "Locator", much like Qt Creator hasAndreas Kling
Pressing Ctrl+K will now open the little locator command line at the bottom of the window. Right now it can only be used to jump quickly to a file.
2019-10-28HackStudio: Show .h files with C++ syntax highlightingAndreas Kling
2019-10-27HackStudio: Draw a brownish frame around the current editor widgetAndreas Kling
Also make the editor filename label bold only for the current editor.
2019-10-27HackStudio: Support opening the same file in both editorsAndreas Kling
Hey, it actually works! You can now edit the same file in both editors and even the C++ highlighting updates correctly in both of them. :^)
2019-10-27LibGUI: Move GTextDocument out of GTextEditorAndreas Kling
The idea here is to decouple the document from the editor widget so you could have multiple editors being views onto the same document. This doesn't work yet, since the document and editor are coupled in various ways still (including a per-line back-pointer to the editor.)
2019-10-27HackStudio: Allow switching between the two editors with Ctrl+E :^)Andreas Kling
This is very hackish and should be done differently, but the feature feels pretty nice and does work for now.
2019-10-27HackStudio: Tweak EditorWrapper layouts a bit to make things look niceAndreas Kling
2019-10-27HackStudio: Support multiple editors on screenAndreas Kling
This patch adds Editor (subclass of GTextEditor) and EditorWrapper. An EditorWrapper is a composite widget that adds a little statusbar above an Editor widget. The statusbar is used for showing the filename and the current cursor position. More things can definitely be added. To get to the currently active editor, call current_editor(). You can also get to the current editor's wrapper by calling.. current_editor_wrapper(). Which editor is current is determined by which was was last focused by the user.
2019-10-26HackStudio: Tweak style of C++ identifiersAndreas Kling
On second thought, let's not have bold identifiers, as this ended up making most of the code bold. :^)
2019-10-26HackStudio: Focus the text editor after opening a fileAndreas Kling
2019-10-26HackStudio: Implement adding an existing file to projectAndreas Kling
2019-10-26HackStudio: Implement adding a new file to the projectAndreas Kling
You can now press Ctrl+N to create and add a new file to the project!
2019-10-26LibGUI: Make GTextEditor::Span have a range instead of two positionsAndreas Kling
A GTextRange is really just two GTextPositions (start and end) anyway. This way we can say nice things like "if (range.contains(position))"
2019-10-26HackStudio: "Hide" the action tabs (find in files, console) by defaultAndreas Kling
By "hide" I really mean collapse them down to 24px height. We grow them to a normal size when they're needed. The user is also free to resize them at will. This keeps them out of the way when you just want to do editing. :^)
2019-10-26HackStudio: Enable line wrapping and automatic indentation by defaultAndreas Kling
2019-10-26HackStudio: Assorted improvements to C++ highlightingAndreas Kling
Add a list of hard-coded standard types (including AK types) and show them in a different style. Rehighligt the file whenever it changes. (This is very inefficient but makes it much easier to experiment.) Also keep tweaking the colors. :^)
2019-10-26HackStudio: Make C++ keywords bold :^)Andreas Kling
Now that we can specify the font of a GTextEditor::Span, use this to make C++ keywords show up in bold text. Also tweak colors a bit.
2019-10-25HackStudio: Teach the C++ lexer about most C++ keywordsAndreas Kling
Also fix broken "/* */" comment handling.
2019-10-25HackStudio: Lex C++ files and apply some basic syntax highlightingAndreas Kling
When we open a file whose name ends in ".cpp", we now pass the contents through CppLexer, which produces a CppToken stream. Those CppTokens are then converted into GTextEditor::Spans and handed over to GTextEditor which then colorizes the source code accordingly. This is pretty neat. :^)
2019-10-25HackStudio: Make CppTokens have (line,column) positionsAndreas Kling
These are infinitely more useful than raw indices into the input text.
2019-10-25HackStudio: Start building a C++ lexer to help with syntax highlightingAndreas Kling
2019-10-25HackStudio: Unbreak jumping to a search resultAndreas Kling
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-24HackStudio: Move the ProcessStateWidget below the TerminalWidgetAndreas Kling
This looks a bit less janky when hiding/unhiding.. :^)
2019-10-24HackStudio: Bring up the console when doing a "build" or "run"Andreas Kling
We most likely want to see what comes out on the console when starting one of these actions.
2019-10-24HackStudio: Add some toolbar icons to liven up the UI a bit :^)Andreas Kling
2019-10-24HackStudio: Hide the ProcessStateWidget while no process is runningAndreas Kling
2019-10-24HackStudio: Show the slave pty's PGID in the ProcessStateWidgetAndreas Kling
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-24HackStudio: Add a widget showing the state of console's running processAndreas Kling
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-23HackStudio: Move "find in files" widget to its own file/classAndreas Kling
Instead of clogging up main.cpp with find-in-files functionality, put it in a FindInFilesWidget class in a separate file.
2019-10-23HackStudio: Make the "find in files" widget more keyboard-accessibleAndreas Kling
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-23HackStudio: Start adding a "find in files" functionAndreas Kling
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-23HackStudio: Put the console terminal wrapper in a GTabWidgetAndreas Kling
This will make it straightforward to add more things at this level.
2019-10-22HackStudio: Add a simple "Save" actionAndreas Kling
Pressing Ctrl+S now saves the currently open file to disk.
2019-10-22HackStudio: Add a simple "Run" actionAndreas Kling
Ctrl+R will now execute "make run" in the project directory. :^)