enso/app/gui2
Adam Obuchowicz c78291a153
Fitering entries in Vue IDE + suggestion database mock (#7804)
Fixes #7737

Added structures representing Suggestion Database entries. Currently, the db is loaded from a snapshot from the old GUI.

Added an input to CB and use it to filter components. The interpretation is simple: the input is split by the last dot, and the left part is considered a qualified name, and the right part is a function name written by the user so far. I rewrote the filtering algorithm designed by @jdunkerley, changing it a bit, so we support qualified names instead of just a type name.

https://github.com/enso-org/enso/assets/3919101/76a957f6-e53f-49ad-996c-398cd7112fc6

# Important Notes
* The component list is now sorted from "first to select" to "least interesting". The panel itself cares about putting the first on the bottom.
* The suggestion db snapshot is very big, so it's instead loaded from external server.
2023-09-20 09:16:18 +00:00
..
e2e Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
public Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
rust-ffi Gui2: integrate rust Enso parser (#7753) 2023-09-07 12:54:01 +00:00
shared Gui2: integrate rust Enso parser (#7753) 2023-09-07 12:54:01 +00:00
src Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00
.eslintrc.cjs Gui2: integrate rust Enso parser (#7753) 2023-09-07 12:54:01 +00:00
.gitignore Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
.prettierignore Vue project title, execution mode selector, and breadcrumbs (#7726) 2023-09-07 15:02:55 +00:00
.prettierrc.json Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
env.d.ts Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
index.html Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
package-lock.json Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00
package.json Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00
playwright.config.ts Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
postcss.config.js Gui2: integrate rust Enso parser (#7753) 2023-09-07 12:54:01 +00:00
README.md Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
tsconfig.app.json Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00
tsconfig.json Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
tsconfig.node.json Add Vue gui project (#7696) 2023-09-04 22:27:33 +00:00
tsconfig.vitest.json Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00
vite.config.ts Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00
vitest.config.ts Fitering entries in Vue IDE + suggestion database mock (#7804) 2023-09-20 09:16:18 +00:00

enso-ide

This template should help get you started developing with Vue 3 in Vite.

VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:

  1. Disable the built-in TypeScript Extension
    1. Run Extensions: Show Built-in Extensions from VSCode's command palette
    2. Find TypeScript and JavaScript Language Features, right click and select Disable (Workspace)
  2. Reload the VSCode window by running Developer: Reload Window from the command palette.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

Run Unit Tests with Vitest

npm run test:unit

Run End-to-End Tests with Playwright

# Install browsers for the first run
npx playwright install

# When testing on CI, must build the project first
npm run build

# Runs the end-to-end tests
npm run test:e2e
# Runs the tests only on Chromium
npm run test:e2e -- --project=chromium
# Runs the tests of a specific file
npm run test:e2e -- tests/example.spec.ts
# Runs the tests in debug mode
npm run test:e2e -- --debug

Lint with ESLint

npm run lint