Commit Graph

26 Commits

Author SHA1 Message Date
Matt Godbolt
9e9e035b28 Rephrase frontend imports (#7824)
- Removes `rootDirs` so all imports will be relative in the frontend
- Updates (and unifies) imports to be `../types/...` etc instead of
relying on "types" being in the rootDir for the frontend.
- Fixes one type that was being picked up from `lib` in the frontend.
- Adds a precommit hook to check in future

Paves the way to writing _unit_ tests for the frontend for the subset of
the frontend code we can import from `node` (which might be a lot of
it!)
2025-06-18 09:04:23 -05:00
Mats Jun Larsen
5eea63328f Migrate to Biome for linting and formatting (#7033) 2025-02-02 17:54:31 +00:00
Ofek
c1985d64a1 Tsification binge #7 (#6974) 2024-10-25 12:19:04 +03:00
Ofek
caca3ea6c7 Eliminate all google-analytics dead code (#6954)
<!-- THIS COMMENT IS INVISIBLE IN THE FINAL PR, BUT FEEL FREE TO REMOVE
IT
Thanks for taking the time to improve CE. We really appreciate it.
Before opening the PR, please make sure that the tests & linter pass
their checks,
  by running `make check`.
In the best case scenario, you are also adding tests to back up your
changes,
  but don't sweat it if you don't. We can discuss them at a later date.
Feel free to append your name to the CONTRIBUTORS.md file
Thanks again, we really appreciate this!
-->
2024-10-10 21:21:43 +03:00
Ofek
42533d8dbb Stop duplicating hasXXoutput + XXoutput (#6476)
When you need to check if `XXoutput` exists, check it directly.
+some TSification in CompilationResult
2024-05-14 20:11:09 +03:00
Ofek
d2ee6e18a5 Replace the deprecated monaco.editor.ICodeEditor.deltaDecorations (#6078)
Replace the deprecated `monaco.editor.ICodeEditor.deltaDecorations` with `monaco.editor.IEditorDecorationsCollection`

Seems that today the official way of colouring monaco editors is having
them `createDecorationsCollection`, keep the resulting
decorations-collection and call `set` on it with new decorations
whenever needed.
There are many possible design choices on where to put it, I opted to
put `editorDecorations` in `MonacoPane`, and have
`MonacoPane.createEditor` initialize it only in panes where decorations
are actually used.
Also some signatures changed which had a broad (but non-interesting)
impact.
2024-02-04 18:12:53 +02:00
Jeremy Rifkin
72e6b34d55 Improve pane typing (#5191)
Resolves #4365
2023-06-21 21:40:35 -04:00
Jeremy Rifkin
c779507000 Create a print view (#5161)
This PR adds a print view for CE

Closes #4617


![image](https://github.com/compiler-explorer/compiler-explorer/assets/51220084/92e5ceab-10cc-4289-a742-592e379627ef)

At the moment syntax highlighting isn't working. I think we need a way
to get style definitions from monaco. I've opened an issue at
https://github.com/microsoft/monaco-editor/issues/4031. For the CFG
pane, using the monaco classes "just works", but for some reason when
@media print is applied those definitions go away. We'd want to always
use light mode colors anyway.
2023-06-19 22:13:45 -04:00
Mats Jun Larsen
633eb82d18 Transition to ECMAScript Modules (#4780)
Makes the Compiler Explorer app, and all the tooling ESM compatible.
Things that have been done:

1. The package.json has `type: module` now
2. All relative imports have a .js ending
3. All directory imports are now directory/index.js to comply with ESM
standards
4. Dependency node-graceful is now imported into tree, because the
package is broken under esm
5. Dependency p-queue has been bumped to 7.x with ESM support
6. Dependency profanities has been bumped to 3.x with ESM support
7. Webpack config is now both ESM and CommonJS compatible
8. Non-ESM compatible imports have been rewritten
9. ESLint configuration has been tweaked to not fail on .js imports
10. Mocha is now hacked together and ran with ts-node-esm
11. Webpack is now hacked together and ran with ts-node-esm
12. Webpack config is now ESM compatible, so that it can be used in the
dev server
13. Cypress code still runs commonjs, and has been excluded from the
tsconfig
14. All sinon mock tests have been commented out, because sinon module
mocks do not work with ESModules (because ESModules are immutable)

A lot of tests are now giving warnings/errors to stdout, yet still pass.
Docenizer codegenerator scripts have been updated, but I did not re-run
them, and instead just changed their code.

---------

Co-authored-by: Matt Godbolt <matt@godbolt.org>
2023-02-27 18:06:38 -06:00
Jeremy Rifkin
384c297906 Fix trailing comma issue (#4775)
Make trailing commas more consistent throughout the project, fixes
config conflict between eslint and prettier. Resolves an oversight in
#4766.
2023-02-26 12:21:35 -05:00
Jeremy Rifkin
07f37abe76 The War of The Types (#4490) 2023-01-13 19:22:25 -05:00
Jeremy Rifkin
7c08e02726 Toggles state (#4006)
* Updated Toggles' handling of state

* updated pp-view

* Updated output
2022-08-30 18:38:48 -04:00
Mats Larsen
1f5fbe0e28 Replace provide-plugin jquery imports with import statements (#3943) 2022-08-07 11:58:16 +02:00
Jeremy Rifkin
cc95e37d0a Remove unecessary jquery imports in ts files (#3576) 2022-04-27 05:48:05 +02:00
Mats Larsen
4f9a34c511 Also enable prettier for recursive directories in static (#3539)
* Also enable prettier for recursive directories in static

* Fix formatting

* Fixes
2022-04-24 19:11:48 +02:00
Jeremy Rifkin
1daf79f735 Resolve @typescript-eslint/no-unnecessary-condition warnings for static/panes/ (#3535)
* Resolve unnecessary conditions for ast-view.ts

* Resolve unnecessary conditions for gnatdebug-view.ts

* Resolve unnecessary conditions for gnatdebugtree-view.ts

* Resolve unnecessary conditions for ir-view.ts

* Resolve unnecessary conditions for opt-view.ts

* Resolve unnecessary conditions for pane.ts

* Resolve unnecessary conditions for pp-view.ts

* Resolve unnecessary conditions for rusthir-view.ts

* Resolve unnecessary conditions for rustmacroexp-view.ts

* Resolve unnecessary conditions for rustmir-view.ts

* Resolve unnecessary conditions for tree.ts
2022-04-23 23:04:29 +02:00
Mats Larsen
b48efe333b Use Hub and EventHub types in codebase (#3482) 2022-04-02 22:35:17 +01:00
Matt Godbolt
5030dcbcba Fix monaco button registration 2022-02-26 13:57:42 -06:00
Matt Godbolt
d27c9980dd Extract a Pane base separate from a MonacoPane. (#3385)
* Extract a Pane base separate from a MonacoPane.
* Make it clearer that editor and tree id are truthy-ish non-zero numbers, or else not present. Thanks @partouf; CC @jeremy-rifkin

Paves the way to move the (few) tools that don't have an editor to also share the base class.
2022-02-26 13:29:54 -06:00
Jeremy Rifkin
17b4f2ebc4 Fix Editor #false bug (#3360)
* Fix Editor: #false bug
* Refactoring, a couple small fixes to handling, and made changes for opt view
* Fixed Editor #false bug for diff pane
2022-02-23 07:46:40 -06:00
Rubén Rincón Blanco
48eee26d2c Group some files to their own folders (#3384)
* Group some files to their own folders

In etc/scripts/, added disasms/, docenizers/, and util/ folders
In lib/, added mapfiles/, and parsers/ folders (+moved google.js to
shortener)
In static/, added widgets/ folder

Added cypress folder to .gitignore

* Address Matt's PR reviews

* Move new Pane renaming to folder
2022-02-22 00:18:21 +01:00
Luca Natilla
26cbd6e63c Pane renaming saves the name of the panes into their state (#3364)
* Renaming works for compiler with local storage saving

* Remove closed panes from local storage

* Feature working for almost every pane

* Working except for editor and tool-input-view

* Save pane name into its state instead of local storage

* Remove unnecessary local storage code

* Apply Ruben's suggestions

* Check for CMakeLists.txt always on default name

* Change pane renaming's modal placeholder's text, code cleanup
2022-02-22 00:07:31 +01:00
Rubén Rincón Blanco
db229b94bc Add strict tsc flag for the frontend ts code (#3356) 2022-02-12 02:41:01 +01:00
partouf
dea05120ce oops 2022-02-11 15:58:29 +01:00
partouf
1660ce7c3b type things 2022-02-11 15:49:54 +01:00
Jeremy Rifkin
74efcfa754 Preprocessor output panel (#3330) 2022-02-11 15:42:41 +01:00