Part of: #144296
## Summary
First step of `[ESQL] Improve the typing experience` (#144296). This PR
is the skeleton for later parts, but already supports basic parsing
scenarios.
## What was done:
- [x] Added new `ESQL` language in `@kbn/monaco` package. Parsing was
done using the `antl` syntax;
- [x] `kbnUiSharedDeps`-srcJs bundle has been optimised, all workers
have been moved into separate chunks. This gave almost minus` 2 MB` 🕺
- [x] existing `esql` lang was renamed to `sql`. In order not to confuse
anyone in the future
- [x] some code from `painless` folder was moved to `common` and reused
in ESQL (probably needs some refactoring in future)
## Next steps:
- [ ] improving `ANLT` syntax to cover all cases
- [ ] implementing `Autocomplete` feature
## How to use new `ESQL Lang`:
To use new language 2 properties should be set for `CodeEditor`
component
```ts
import { ESQL_LANG_ID, ESQL_THEME_ID } from '@kbn/monaco';
import { CodeEditor } from '@kbn/kibana-react-plugin/public';
<CodeEditor
...
languageId={ESQL_LANG_ID}
options={{
...
theme: ESQL_THEME_ID,
}}
/>
```
Currently syntax highlighting looks like:
<img width="450" alt="image"
src="https://user-images.githubusercontent.com/20072247/205685072-0658fad1-d034-4d36-a44d-6a49e7365ab3.png">
<img width="450" alt="image"
src="https://user-images.githubusercontent.com/20072247/205685220-c67db50c-6f3b-49b5-9576-d1ee68428184.png">
Will be updated in Step 2
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Marco Liberati <dej611@users.noreply.github.com>
* First iteration of xjson in monaco
* Throwaway implementation in painless lab - THIS MUST BE REVERTED
* WiP on build process for new kbn-lang package
* new @kbn/langs package and update ui-shared-deps
* Update jest config for new work files
* Update painless lab -- REVERT THIS COMMIT
* Create shared useXJson mode hook
* Final update to using the new shared useXJsonMode hook -- REVERT
* Created @kbn/monaco and share through shared deps
* always access monaco through `@kbn/monaco`
* use path.resolve to create path
* add basic readme
* remove console.log call
* remove typescript support from ui-shared-deps webpack config
* use `@kbn/babel-preset`
* include the monaco styles in the kbn-ui-shared-deps
* sort package.json
* build worker at bootstrap rather than commiting to repo
* only build worker, don't pre-bundle monaco
* fix type check errors
* remove section from readme about committed dist
* keep editor.worker.js postfix
* forgot to save update to import
* license package as apache-2.0
* Added regenerator runtime for worker bundle
* revert changes to painless lab
Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>