summaryrefslogtreecommitdiff
path: root/Userland/DevTools/HackStudio
AgeCommit message (Collapse)Author
2021-05-02Userland: Make IPC handlers return void if they don't have any outputsGunnar Beutner
2021-05-02Userland: Get rid of the OwnPtr<...> boilerplate code for IPC handlersGunnar Beutner
2021-05-02HackStudio: Use common copy functions in ProjectTemplate.cppValtteri Koskivuori
This removes the duplicated copy logic and uses the ones from Core::File instead.
2021-05-01Everywhere: Turn #if *_DEBUG into dbgln_if/if constexprGunnar Beutner
2021-05-01HackStudio: Detection of externally deleted filesOlivier De Cannière
HackStudio can now detect that files that have been opened in it were deleted. When this occurs, it will update the list of open files and reasign a file to the editors that showed the deleted file before the deletion. The new file is either another file that was opened or the default editor is no other open file is available Closes SerenityOS#6632
2021-04-29Everywhere: "file name" => "filename"Andreas Kling
2021-04-29Everywhere: Use "the SerenityOS developers." in copyright headersLinus Groh
We had some inconsistencies before: - Sometimes "The", sometimes "the" - Sometimes trailing ".", sometimes no trailing "." I picked the most common one (lowecase "the", trailing ".") and applied it to all copyright headers. By using the exact same string everywhere we can ensure nothing gets missed during a global search (and replace), and that these inconsistencies are not spread any further (as copyright headers are commonly copied to new files).
2021-04-28HackStudio: Add context option to set execution point while debuggingFalseHonesty
You can now right click in HackStudio's editor while debugging and have the option to instantly move the current execution position to the current line.
2021-04-27LibThread: Fix int to pointer conversionJean-Baptiste Boric
2021-04-25Everywhere: Remove empty line after function body opening curly braceLinus Groh
2021-04-25HackStudio: Display variable type name in expression evaluatorFalseHonesty
2021-04-25HackStudio: Implement custom JS -> C++ "proxy" objectsFalseHonesty
This patch adds a custom JS Object type that will convert written properties to their C++ equivalents, reflecting JS writes back to the debugging session. This is better than a simple proxy because printing this custom object works as expected because properties still exist on the object as existing handlers expect.
2021-04-25HackStudio: Add evaluate expression popup to debuggerFalseHonesty
This implements a dialog that can be used to evaluate a JS expression in the HackStudio's Debugger context. It also implements simple C++ Variable <-> JS Value conversion, allowing for JS expressions to read/write variables in the debugger scope. Currently, C++ structs are mapped to JS objects by way of a JS proxy, however this leads to issues when printing, so this will be changed in a later commit.
2021-04-25IPCCompiler: Remove hardcoded endpoint magic, attempt deuxsin-ack
This patch removes the IPC endpoint numbers that needed to be specified in the IPC files. Since the string hash is a (hopefully) collision free number that depends on the name of the endpoint, we now use that instead. :^) Additionally, endpoint magic is now treated as a u32, because endpoint numbers were never negative anyway. For cases where the endpoint number does have to be hardcoded (a current case is LookupServer because the endpoint number must be known in LibC), the syntax has been made more explicit to avoid confusing those unfamiliar. To hardcode the endpoint magic, the following syntax is now used: endpoint EndpointName [magic=1234]
2021-04-25Revert "IPCCompiler: Use string hashes for IPC endpoint magic"Andreas Kling
This reverts commit 59218007a3034c7770b7fa5277ce1eae85bb1c07.
2021-04-25IPCCompiler: Use string hashes for IPC endpoint magicsin-ack
This patch removes the IPC endpoint numbers that needed to be specified in the IPC files. Since the string hash is a (hopefully) collision free number that depends on the name of the endpoint, we now use that instead. :^)
2021-04-23AK: Rename adopt() to adopt_ref()Andreas Kling
This makes it more symmetrical with adopt_own() (which is used to create a NonnullOwnPtr from the result of a naked new.)
2021-04-22LibWeb+HackStudio: Use lukew@serenityos.org for my copyright headersLuke
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-21HackStudio: Convert String::format() => String::formatted()Andreas Kling
2021-04-21Userland: Use Core::DirIterator::next_full_path()Andreas Kling
Simplify some code by using this instead of concatenating the full path ourselves at the call site.
2021-04-21HackStudio: Clean up debugger thread when debugger exitsFalseHonesty
Fixes #4393 :^)
2021-04-21HackStudio+LibDebug: Support stopping a debugged processFalseHonesty
In LibDebug this required implementing the Kill debug action, and in HackStudio this required making the toolbar's stop action stop the debugger if active.
2021-04-19HackStudio: Sort ClassView entriesItamar
2021-04-18HackStudio: Add ability to set hardware watchpoints on variablesFalseHonesty
We can now add a watchpoint to a variable by right clicking on it in the variable view, and selecting add watchpoint. To remove a watchpoint, the exact same action is repeated, except it will now say remove watchpoint.
2021-04-18HackStudio: Don't crash when invalid file is requested to be openedFalseHonesty
Previously, if the running debugger asked for HackStudio to open an invalid file, it would crash trying to switch to it. Now it will just continue without switching the editor.
2021-04-18Everywhere: Fix a bunch of typosLinus Groh
2021-04-13Everywhere: It's now "Foobar", not "FooBar", and not "foo bar"Andreas Kling
I hereby declare these to be full nouns that we don't split, neither by space, nor by underscore: - Breadcrumbbar - Coolbar - Menubar - Progressbar - Scrollbar - Statusbar - Taskbar - Toolbar This patch makes everything consistent by replacing every other variant of these with the proper one. :^)
2021-04-13HackStudio: Add ClassView tab for viewing classes in a tree structureItamar
This enables the user to view and navigate classes with a TreeView that is updated by the LanguageServer as it parses the code. It offers a new neat way to view the project's structure :^)
2021-04-13LanguageServers: Only notify client about updated declarationsItamar
If the declarations haven't changed since we last notified the client, then there's no need to do so.
2021-04-13HackStudio: Store known symbol declarations in ProjectDeclarationsItamar
They were previously stored inside the Locator widget. I moved them to the globally visible ProjectDeclarations class so they can also be used by other widgets.
2021-04-13LibCpp: Add 'Namespace' and 'Member' declaration typesItamar
2021-04-13HackStudio+LibCpp: Include class members in LocatorItamar
2021-04-13LibGUI+HackStudio: Add way to tell FilePicker to open a folderFalseHonesty
This now means that when trying to open a folder, one can click on the folder and press open instead of having to actually step into the desired folder. Of course, it also means it won't let you open non-directories anymore.
2021-04-12HackStudio: Fix debugger preview for char variablesFalseHonesty
2021-04-12LibDebug+HackStudio: Fix crashes relating to debugger variable previewFalseHonesty
For one, viewing a variable who's type contained a subprogram will no longer crash HackStudio. Additionally, the variable view will handle invalid enum values gracefully now, fixing another crash. Finally, deeply nested (nest count > 1) structures will have their memory addresses properly set, fixing the final crash I found.
2021-04-12HackStudio: Properly support Debugger's new source root conceptFalseHonesty
HackStudio's debugger instance has its source root property updated when switching projects, and breakpoints will properly canonicalize their file paths as the Debugger now expects.
2021-04-12HackStudio: Allow users to drag and drop files into the editorRickySeverino
2021-04-10HackStudio: Alt shortcuts and book title capitalization in menusAndreas Kling
2021-04-09HackStudio: Make actions with project tree selections work as expectedAlgot Axelzon
Creating a file while having a file or directory selected will now create the file under the selected directory, or in same directory as a selected file. Creating directories works the same way. Right click -> Open on selected files will now open the selected files. Deleting selected files will now delete the selected files. As suggested by sagefarrenholz this was accomplished by adding a private function HackStudioWidget::selected_file_paths() that returns a Vector<String> of the current project tree selection. Function HackStudioWidget::selected_file_names() is removed due to not being used.
2021-04-07CppLanguageServer: is_empty_property: Return false for null node parentBrendan Coles
2021-04-06LibCpp: Add TemplatizedNameItamar
This type represents templatized names, and replaces our previous use of 'TemplatizedType' and 'TemplatizedFunctionCall'. Also, we now parse function calls as secondary expressions.
2021-04-06LanguageServers/Cpp: Refactor logic of find declarationItamar
2021-04-06LibCpp: Add AST::NameItamar
A Name node is basically an identifier with an optional scope, e.g Core::File.
2021-04-06LanguageServers/Cpp: Don't include declarations bellow the current lineItamar
2021-04-05LibGUI: Do AbstractView::set_column_hidden() => set_column_visible()Andreas Kling
This API felt backwards, so let's change it.
2021-04-04HackStudio: File search box stays opened after closingTim Waterhouse
Fix ##5061 by passing the parent widget down to the locator object and having the locator object parent it's window to it.
2021-03-25Userland: Turn all application menus into window menus :^)Andreas Kling
2021-03-23HackStudio+LanguageServers/Cpp: Show scope of symbols in LocatorItamar
2021-03-23LanguageServers/Cpp: Declarations inside namespaces are globally visibleItamar
This includes declarations inside namespaces in the globally visible declarations of a cpp document.