mirror of
https://github.com/enso-org/enso.git
synced 2024-12-22 18:01:38 +03:00
343a644051
- Synchronize Y.Js clients by AST (implements #8237). - Before committing an edit, insert any parentheses-nodes needed for the concrete syntax to reflect tree structure (fixes #8884). - Move `externalId` and all node metadata into a Y.Map owned by each `Ast`. This allows including metadata changes in an edit, enables Y.Js merging of changes to different metadata fields, and will enable the use of Y.Js objects in metadata. (Implements #8804.) ### Important Notes - Metadata is now set and retrieved through accessors on the `Ast` objects. - Since some metadata edits need to take effect in real time (e.g. node dragging), new lower-overhead APIs (`commitDirect`, `skipTreeRepair`) are provided for careful use in certain cases. - The client is now bundled as ESM. - The build script cleans up git-untracked generated files in an outdated location, which fixes lint errors related to `src/generated` that may occur when switching branches.
56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
import { FlatCompat } from '@eslint/eslintrc'
|
|
import eslintJs from '@eslint/js'
|
|
import * as path from 'node:path'
|
|
import * as url from 'node:url'
|
|
|
|
const compat = new FlatCompat()
|
|
|
|
const DIR_NAME = path.dirname(url.fileURLToPath(import.meta.url))
|
|
|
|
const conf = [
|
|
{
|
|
ignores: ['rust-ffi/pkg', 'rust-ffi/node-pkg', 'dist', 'src/generated', 'templates'],
|
|
},
|
|
...compat.extends('plugin:vue/vue3-recommended'),
|
|
eslintJs.configs.recommended,
|
|
...compat.extends('@vue/eslint-config-typescript', '@vue/eslint-config-prettier'),
|
|
{
|
|
// files: ['{**,src}/*.{vue,js,jsx,cjs,mjs,ts,tsx,cts,mts}'],
|
|
languageOptions: {
|
|
parserOptions: {
|
|
tsconfigRootDir: DIR_NAME,
|
|
ecmaVersion: 'latest',
|
|
project: [
|
|
'./tsconfig.app.json',
|
|
'./tsconfig.node.json',
|
|
'./tsconfig.server.json',
|
|
'./tsconfig.app.vitest.json',
|
|
'./tsconfig.server.vitest.json',
|
|
'./tsconfig.story.json',
|
|
],
|
|
},
|
|
},
|
|
rules: {
|
|
camelcase: [1, { ignoreImports: true }],
|
|
'no-inner-declarations': 0,
|
|
'vue/attribute-hyphenation': [2, 'never'],
|
|
'vue/v-on-event-hyphenation': [2, 'never'],
|
|
'@typescript-eslint/no-unused-vars': [
|
|
1,
|
|
{
|
|
varsIgnorePattern: '^_',
|
|
argsIgnorePattern: '^_',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
files: ['stories/*.vue'],
|
|
rules: {
|
|
'vue/multi-word-component-names': 0,
|
|
},
|
|
},
|
|
]
|
|
|
|
export default conf
|