Giter Club home page Giter Club logo

Comments (2)

johnsoncodehk avatar johnsoncodehk commented on May 18, 2024 1

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.

IWANABETHATGUY avatar IWANABETHATGUY commented on May 18, 2024

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,
8UWKyACuVU
1200+ line vue file , first parsing only took 6ms, after that , every keystroke only cost 0.3 ms

from language-tools.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.