Comments (2)
Yes, of course we can consider using it :) Solving performance problems is the purpose of establishing this project.
Quick preview for what volar parser using:
parser | for | |
---|---|---|
SFC | @vue/compiler-sfc -> parse | Virtual documents mapping |
<template> |
@vue/compiler-dom -> compile | Virtual template script |
<template lang="pug"> |
@vue/compiler-dom -> compile + Regex | Virtual template script + html <-> pug mapping |
<script> |
typescript -> createSourceFile -> getStart / End | Virtual <script setup> script |
<script setup> |
typescript -> createSourceFile -> getStart / End | Virtual <script setup> script |
<style> |
vscode-css-languageservice -> findDocumentSymbols + Regex | Extra css service |
There are currently no obvious performance problems with regex, because the usage of regex is very small, and in the case of on-demand calculation, regex will not be calculated if <template lang="pug">
, <style>
block is not changed.
But we have performance problems from typescript's getStart()
, getStart()
is very expensive, and the diagnosis will be significantly lagging when ref sugar is used extensively in <script setup>
. Replacing typescript with tree-sitter seems to solve this problem.
The project is still changing rapidly, discussing efficiency in github may be very low, you can find me on discord if you need, my id is johnsoncodehk#0495
.
from language-tools.
here is the tree-sitter
homepage: https://tree-sitter.github.io/tree-sitter/
tree-sitter-vue
: https://ikatyang.github.io/tree-sitter-vue/ you can try here,
1200+ line vue
file , first parsing only took 6ms
, after that , every keystroke only cost 0.3
ms
from language-tools.
Related Issues (20)
- How to specify typescript path to volar lsp HOT 2
- Showing false _declared but not used_ errors for functions used in `v-on="{}"`
- How to use format HOT 2
- `language-plugin-pug` unused prop with `v-slot` and `v-for`
- missing auto closing tags in template HOT 1
- Is Vue.Volar still the recommended formatter since the new Vue - Official extension has been released? HOT 1
- IntelliSense is not working HOT 16
- Hybrid Mode Discussion HOT 3
- TypeScript checks partially fail when not using anonymous functions in templates HOT 1
- 使用泛型hook,ts类型推断错误 / Using generic hook, ts type inference error HOT 3
- V2.0.16 code folding function disabled. HOT 6
- vue-tsc think that unregister component is unknown in template tag
- some mistakes HOT 1
- dts emit file(.vue.d.ts) that has ts prompt error HOT 1
- Syntax highlight breaks when using directives/mixins on Vue2 with TS HOT 1
- Vue TSC & computed-refs HOT 1
- vscode ref 类型的变量 .value 自动保存不会补全 HOT 1
- Types imported in the `<script setup>` should not be used as a variable in template
- ``.foo`` -> ``foo`` when renaming classname within ``scoped``
- vue-official导致项目全部报错 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from language-tools.