Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open large diff file is very slow #1865

Open
nibon7 opened this issue Mar 25, 2022 · 7 comments
Open

Open large diff file is very slow #1865

nibon7 opened this issue Mar 25, 2022 · 7 comments
Labels
A-tree-sitter Area: Tree-sitter C-bug Category: This is a bug

Comments

@nibon7
Copy link
Contributor

nibon7 commented Mar 25, 2022

Summary

Open large diff file (about 2M) is very slow, but hx open it quickly when I rename file extension to .txt.
Here is the perf report

# To display the perf.data header info, please use --header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 231K of event 'cycles:u'
# Event count (approx.): 242081284083
#
# Children      Self  Command          Shared Object       Symbol                                                                                                                                                                                            
# ........  ........  ...............  ..................  ..................................................................................................................................................................................................
#
    99.99%     0.00%  hx               hx                  [.] std::rt::lang_start
            |
            ---std::rt::lang_start
               hx::main
               hx::main_impl
               tokio::runtime::Runtime::block_on
               tokio::runtime::thread_pool::ThreadPool::block_on
               tokio::runtime::enter::Enter::block_on
               |          
                --99.99%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                          |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                          |          ts_query_cursor_next_match
                          |          |          
                          |           --98.70%--ts_query_cursor__advance
                          |                     |          
                          |                     |--59.74%--ts_tree_cursor_current_status
                          |                     |          |          
                          |                     |          |--6.09%--ts_language_field_map
                          |                     |          |          
                          |                     |          |--5.44%--ts_language_symbol_metadata
                          |                     |          |          
                          |                     |          |--5.05%--ts_subtree_extra
                          |                     |          |          
                          |                     |          |--1.71%--ts_language_alias_sequence
                          |                     |          |          
                          |                     |           --1.07%--ts_subtree_symbol
                          |                     |          
                          |                     |--34.54%--ts_tree_cursor_parent_node
                          |                     |          |          
                          |                     |          |--2.69%--ts_subtree_visible
                          |                     |          |          
                          |                     |           --1.42%--ts_language_alias_at
                          |                     |          
                          |                     |--1.12%--ts_subtree_extra
                          |                     |          
                          |                     |--0.60%--ts_subtree_symbol
                          |                     |          
                          |                     |--0.56%--ts_language_field_map
                          |                     |          
                          |                     |--0.53%--ts_language_alias_sequence
                          |                     |          
                          |                     |--0.53%--ts_subtree_visible
                          |                     |          
                          |                      --0.51%--ts_language_alias_at
                          |          
                           --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     |          
                                      --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                                ts_query_cursor_next_capture
                                                ts_query_cursor__advance
                                                |          
                                                 --0.73%--ts_tree_cursor_current_status

    99.99%     0.00%  hx               hx                  [.] hx::main
            |
            ---hx::main
               hx::main_impl
               tokio::runtime::Runtime::block_on
               tokio::runtime::thread_pool::ThreadPool::block_on
               tokio::runtime::enter::Enter::block_on
               |          
                --99.99%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                          |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                          |          ts_query_cursor_next_match
                          |          |          
                          |           --98.70%--ts_query_cursor__advance
                          |                     |          
                          |                     |--59.74%--ts_tree_cursor_current_status
                          |                     |          |          
                          |                     |          |--6.09%--ts_language_field_map
                          |                     |          |          
                          |                     |          |--5.44%--ts_language_symbol_metadata
                          |                     |          |          
                          |                     |          |--5.05%--ts_subtree_extra
                          |                     |          |          
                          |                     |          |--1.71%--ts_language_alias_sequence
                          |                     |          |          
                          |                     |           --1.07%--ts_subtree_symbol
                          |                     |          
                          |                     |--34.54%--ts_tree_cursor_parent_node
                          |                     |          |          
                          |                     |          |--2.69%--ts_subtree_visible
                          |                     |          |          
                          |                     |           --1.42%--ts_language_alias_at
                          |                     |          
                          |                     |--1.12%--ts_subtree_extra
                          |                     |          
                          |                     |--0.60%--ts_subtree_symbol
                          |                     |          
                          |                     |--0.56%--ts_language_field_map
                          |                     |          
                          |                     |--0.53%--ts_language_alias_sequence
                          |                     |          
                          |                     |--0.53%--ts_subtree_visible
                          |                     |          
                          |                      --0.51%--ts_language_alias_at
                          |          
                           --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     |          
                                      --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                                ts_query_cursor_next_capture
                                                ts_query_cursor__advance
                                                |          
                                                 --0.73%--ts_tree_cursor_current_status

    99.99%     0.00%  hx               hx                  [.] hx::main_impl
            |
            ---hx::main_impl
               tokio::runtime::Runtime::block_on
               tokio::runtime::thread_pool::ThreadPool::block_on
               tokio::runtime::enter::Enter::block_on
               |          
                --99.99%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                          |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                          |          ts_query_cursor_next_match
                          |          |          
                          |           --98.70%--ts_query_cursor__advance
                          |                     |          
                          |                     |--59.74%--ts_tree_cursor_current_status
                          |                     |          |          
                          |                     |          |--6.09%--ts_language_field_map
                          |                     |          |          
                          |                     |          |--5.44%--ts_language_symbol_metadata
                          |                     |          |          
                          |                     |          |--5.05%--ts_subtree_extra
                          |                     |          |          
                          |                     |          |--1.71%--ts_language_alias_sequence
                          |                     |          |          
                          |                     |           --1.07%--ts_subtree_symbol
                          |                     |          
                          |                     |--34.54%--ts_tree_cursor_parent_node
                          |                     |          |          
                          |                     |          |--2.69%--ts_subtree_visible
                          |                     |          |          
                          |                     |           --1.42%--ts_language_alias_at
                          |                     |          
                          |                     |--1.12%--ts_subtree_extra
                          |                     |          
                          |                     |--0.60%--ts_subtree_symbol
                          |                     |          
                          |                     |--0.56%--ts_language_field_map
                          |                     |          
                          |                     |--0.53%--ts_language_alias_sequence
                          |                     |          
                          |                     |--0.53%--ts_subtree_visible
                          |                     |          
                          |                      --0.51%--ts_language_alias_at
                          |          
                           --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     |          
                                      --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                                ts_query_cursor_next_capture
                                                ts_query_cursor__advance
                                                |          
                                                 --0.73%--ts_tree_cursor_current_status

    99.99%     0.00%  hx               hx                  [.] tokio::runtime::Runtime::block_on
            |
            ---tokio::runtime::Runtime::block_on
               tokio::runtime::thread_pool::ThreadPool::block_on
               tokio::runtime::enter::Enter::block_on
               |          
                --99.99%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                          |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                          |          ts_query_cursor_next_match
                          |          |          
                          |           --98.70%--ts_query_cursor__advance
                          |                     |          
                          |                     |--59.74%--ts_tree_cursor_current_status
                          |                     |          |          
                          |                     |          |--6.09%--ts_language_field_map
                          |                     |          |          
                          |                     |          |--5.44%--ts_language_symbol_metadata
                          |                     |          |          
                          |                     |          |--5.05%--ts_subtree_extra
                          |                     |          |          
                          |                     |          |--1.71%--ts_language_alias_sequence
                          |                     |          |          
                          |                     |           --1.07%--ts_subtree_symbol
                          |                     |          
                          |                     |--34.54%--ts_tree_cursor_parent_node
                          |                     |          |          
                          |                     |          |--2.69%--ts_subtree_visible
                          |                     |          |          
                          |                     |           --1.42%--ts_language_alias_at
                          |                     |          
                          |                     |--1.12%--ts_subtree_extra
                          |                     |          
                          |                     |--0.60%--ts_subtree_symbol
                          |                     |          
                          |                     |--0.56%--ts_language_field_map
                          |                     |          
                          |                     |--0.53%--ts_language_alias_sequence
                          |                     |          
                          |                     |--0.53%--ts_subtree_visible
                          |                     |          
                          |                      --0.51%--ts_language_alias_at
                          |          
                           --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     |          
                                      --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                                ts_query_cursor_next_capture
                                                ts_query_cursor__advance
                                                |          
                                                 --0.73%--ts_tree_cursor_current_status

    99.99%     0.00%  hx               hx                  [.] tokio::runtime::thread_pool::ThreadPool::block_on
            |
            ---tokio::runtime::thread_pool::ThreadPool::block_on
               tokio::runtime::enter::Enter::block_on
               |          
                --99.99%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                          |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                          |          ts_query_cursor_next_match
                          |          |          
                          |           --98.70%--ts_query_cursor__advance
                          |                     |          
                          |                     |--59.74%--ts_tree_cursor_current_status
                          |                     |          |          
                          |                     |          |--6.09%--ts_language_field_map
                          |                     |          |          
                          |                     |          |--5.44%--ts_language_symbol_metadata
                          |                     |          |          
                          |                     |          |--5.05%--ts_subtree_extra
                          |                     |          |          
                          |                     |          |--1.71%--ts_language_alias_sequence
                          |                     |          |          
                          |                     |           --1.07%--ts_subtree_symbol
                          |                     |          
                          |                     |--34.54%--ts_tree_cursor_parent_node
                          |                     |          |          
                          |                     |          |--2.69%--ts_subtree_visible
                          |                     |          |          
                          |                     |           --1.42%--ts_language_alias_at
                          |                     |          
                          |                     |--1.12%--ts_subtree_extra
                          |                     |          
                          |                     |--0.60%--ts_subtree_symbol
                          |                     |          
                          |                     |--0.56%--ts_language_field_map
                          |                     |          
                          |                     |--0.53%--ts_language_alias_sequence
                          |                     |          
                          |                     |--0.53%--ts_subtree_visible
                          |                     |          
                          |                      --0.51%--ts_language_alias_at
                          |          
                           --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     |          
                                      --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                                ts_query_cursor_next_capture
                                                ts_query_cursor__advance
                                                |          
                                                 --0.73%--ts_tree_cursor_current_status

    99.99%     0.00%  hx               hx                  [.] tokio::runtime::enter::Enter::block_on
            |
            ---tokio::runtime::enter::Enter::block_on
               |          
                --99.99%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                          |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                          |          ts_query_cursor_next_match
                          |          |          
                          |           --98.70%--ts_query_cursor__advance
                          |                     |          
                          |                     |--59.74%--ts_tree_cursor_current_status
                          |                     |          |          
                          |                     |          |--6.09%--ts_language_field_map
                          |                     |          |          
                          |                     |          |--5.44%--ts_language_symbol_metadata
                          |                     |          |          
                          |                     |          |--5.05%--ts_subtree_extra
                          |                     |          |          
                          |                     |          |--1.71%--ts_language_alias_sequence
                          |                     |          |          
                          |                     |           --1.07%--ts_subtree_symbol
                          |                     |          
                          |                     |--34.54%--ts_tree_cursor_parent_node
                          |                     |          |          
                          |                     |          |--2.69%--ts_subtree_visible
                          |                     |          |          
                          |                     |           --1.42%--ts_language_alias_at
                          |                     |          
                          |                     |--1.12%--ts_subtree_extra
                          |                     |          
                          |                     |--0.60%--ts_subtree_symbol
                          |                     |          
                          |                     |--0.56%--ts_language_field_map
                          |                     |          
                          |                     |--0.53%--ts_language_alias_sequence
                          |                     |          
                          |                     |--0.53%--ts_subtree_visible
                          |                     |          
                          |                      --0.51%--ts_language_alias_at
                          |          
                           --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                                     |          
                                      --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                                ts_query_cursor_next_capture
                                                ts_query_cursor__advance
                                                |          
                                                 --0.73%--ts_tree_cursor_current_status

    99.99%     0.00%  hx               hx                  [.] <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |
            ---<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
               |          
               |--98.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
               |          ts_query_cursor_next_match
               |          |          
               |           --98.70%--ts_query_cursor__advance
               |                     |          
               |                     |--59.74%--ts_tree_cursor_current_status
               |                     |          |          
               |                     |          |--6.09%--ts_language_field_map
               |                     |          |          
               |                     |          |--5.44%--ts_language_symbol_metadata
               |                     |          |          
               |                     |          |--5.05%--ts_subtree_extra
               |                     |          |          
               |                     |          |--1.71%--ts_language_alias_sequence
               |                     |          |          
               |                     |           --1.07%--ts_subtree_symbol
               |                     |          
               |                     |--34.54%--ts_tree_cursor_parent_node
               |                     |          |          
               |                     |          |--2.69%--ts_subtree_visible
               |                     |          |          
               |                     |           --1.42%--ts_language_alias_at
               |                     |          
               |                     |--1.12%--ts_subtree_extra
               |                     |          
               |                     |--0.60%--ts_subtree_symbol
               |                     |          
               |                     |--0.56%--ts_language_field_map
               |                     |          
               |                     |--0.53%--ts_language_alias_sequence
               |                     |          
               |                     |--0.53%--ts_subtree_visible
               |                     |          
               |                      --0.51%--ts_language_alias_at
               |          
                --1.24%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                          |          
                           --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                                     ts_query_cursor_next_capture
                                     ts_query_cursor__advance
                                     |          
                                      --0.73%--ts_tree_cursor_current_status

    99.93%     0.00%  hx               hx                  [.] ts_query_cursor__advance
            |          
             --99.92%--ts_query_cursor__advance
                       |          
                       |--60.47%--ts_tree_cursor_current_status
                       |          |          
                       |          |--6.15%--ts_language_field_map
                       |          |          
                       |          |--5.49%--ts_language_symbol_metadata
                       |          |          
                       |          |--5.11%--ts_subtree_extra
                       |          |          
                       |          |--1.73%--ts_language_alias_sequence
                       |          |          
                       |           --1.08%--ts_subtree_symbol
                       |          
                       |--34.98%--ts_tree_cursor_parent_node
                       |          |          
                       |          |--2.72%--ts_subtree_visible
                       |          |          
                       |           --1.44%--ts_language_alias_at
                       |          
                       |--1.13%--ts_subtree_extra
                       |          
                       |--0.60%--ts_subtree_symbol
                       |          
                       |--0.57%--ts_language_field_map
                       |          
                       |--0.53%--ts_subtree_visible
                       |          
                       |--0.53%--ts_language_alias_sequence
                       |          
                        --0.52%--ts_language_alias_at

    98.71%     0.00%  hx               hx                  [.] <tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
            |
            ---<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
               ts_query_cursor_next_match
               |          
                --98.70%--ts_query_cursor__advance
                          |          
                          |--59.74%--ts_tree_cursor_current_status
                          |          |          
                          |          |--6.09%--ts_language_field_map
                          |          |          
                          |          |--5.44%--ts_language_symbol_metadata
                          |          |          
                          |          |--5.05%--ts_subtree_extra
                          |          |          
                          |          |--1.71%--ts_language_alias_sequence
                          |          |          
                          |           --1.07%--ts_subtree_symbol
                          |          
                          |--34.54%--ts_tree_cursor_parent_node
                          |          |          
                          |          |--2.69%--ts_subtree_visible
                          |          |          
                          |           --1.42%--ts_language_alias_at
                          |          
                          |--1.12%--ts_subtree_extra
                          |          
                          |--0.60%--ts_subtree_symbol
                          |          
                          |--0.56%--ts_language_field_map
                          |          
                          |--0.53%--ts_language_alias_sequence
                          |          
                          |--0.53%--ts_subtree_visible
                          |          
                           --0.51%--ts_language_alias_at

    98.71%     0.00%  hx               hx                  [.] ts_query_cursor_next_match
            |
            ---ts_query_cursor_next_match
               |          
                --98.70%--ts_query_cursor__advance
                          |          
                          |--59.74%--ts_tree_cursor_current_status
                          |          |          
                          |          |--6.09%--ts_language_field_map
                          |          |          
                          |          |--5.44%--ts_language_symbol_metadata
                          |          |          
                          |          |--5.05%--ts_subtree_extra
                          |          |          
                          |          |--1.71%--ts_language_alias_sequence
                          |          |          
                          |           --1.07%--ts_subtree_symbol
                          |          
                          |--34.54%--ts_tree_cursor_parent_node
                          |          |          
                          |          |--2.69%--ts_subtree_visible
                          |          |          
                          |           --1.42%--ts_language_alias_at
                          |          
                          |--1.12%--ts_subtree_extra
                          |          
                          |--0.60%--ts_subtree_symbol
                          |          
                          |--0.56%--ts_language_field_map
                          |          
                          |--0.53%--ts_language_alias_sequence
                          |          
                          |--0.53%--ts_subtree_visible
                          |          
                           --0.51%--ts_language_alias_at

    61.63%    41.24%  hx               hx                  [.] ts_tree_cursor_current_status
            |          
            |--41.24%--std::rt::lang_start
            |          hx::main
            |          hx::main_impl
            |          tokio::runtime::Runtime::block_on
            |          tokio::runtime::thread_pool::ThreadPool::block_on
            |          tokio::runtime::enter::Enter::block_on
            |          <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |          |          
            |          |--40.71%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
            |          |          ts_query_cursor_next_match
            |          |          ts_query_cursor__advance
            |          |          |          
            |          |          |--39.56%--ts_tree_cursor_current_status
            |          |          |          
            |          |          |--0.56%--ts_language_field_map
            |          |          |          
            |          |           --0.53%--ts_subtree_extra
            |          |          
            |           --0.54%--<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |                     <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |                     <tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
            |                     ts_query_cursor_next_capture
            |                     ts_query_cursor__advance
            |                     |          
            |                      --0.53%--ts_tree_cursor_current_status
            |          
             --20.38%--ts_tree_cursor_current_status
                       |          
                       |--6.15%--ts_language_field_map
                       |          
                       |--5.49%--ts_language_symbol_metadata
                       |          
                       |--5.11%--ts_subtree_extra
                       |          
                       |--1.73%--ts_language_alias_sequence
                       |          
                        --1.08%--ts_subtree_symbol

    35.33%    30.83%  hx               hx                  [.] ts_tree_cursor_parent_node
            |          
            |--30.83%--std::rt::lang_start
            |          hx::main
            |          hx::main_impl
            |          tokio::runtime::Runtime::block_on
            |          tokio::runtime::thread_pool::ThreadPool::block_on
            |          tokio::runtime::enter::Enter::block_on
            |          <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |          |          
            |           --30.42%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
            |                     ts_query_cursor_next_match
            |                     |          
            |                      --30.42%--ts_query_cursor__advance
            |                                |          
            |                                 --30.08%--ts_tree_cursor_parent_node
            |          
             --4.50%--ts_tree_cursor_parent_node
                       |          
                       |--2.72%--ts_subtree_visible
                       |          
                        --1.44%--ts_language_alias_at

     6.72%     6.16%  hx               hx                  [.] ts_language_field_map
            |          
            |--6.16%--std::rt::lang_start
            |          hx::main
            |          hx::main_impl
            |          tokio::runtime::Runtime::block_on
            |          tokio::runtime::thread_pool::ThreadPool::block_on
            |          tokio::runtime::enter::Enter::block_on
            |          <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |          |          
            |           --6.10%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
            |                     ts_query_cursor_next_match
            |                     ts_query_cursor__advance
            |                     |          
            |                      --6.09%--ts_tree_cursor_current_status
            |                                |          
            |                                 --6.09%--ts_language_field_map
            |          
             --0.57%--ts_language_field_map

     6.26%     6.26%  hx               hx                  [.] ts_language_symbol_metadata
            |          
             --6.26%--std::rt::lang_start
                       hx::main
                       hx::main_impl
                       tokio::runtime::Runtime::block_on
                       tokio::runtime::thread_pool::ThreadPool::block_on
                       tokio::runtime::enter::Enter::block_on
                       <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                       |          
                        --6.20%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                                  ts_query_cursor_next_match
                                  ts_query_cursor__advance
                                  |          
                                   --5.73%--ts_tree_cursor_current_status
                                             |          
                                              --5.44%--ts_language_symbol_metadata

     6.24%     5.71%  hx               hx                  [.] ts_subtree_extra
            |          
            |--5.71%--std::rt::lang_start
            |          hx::main
            |          hx::main_impl
            |          tokio::runtime::Runtime::block_on
            |          tokio::runtime::thread_pool::ThreadPool::block_on
            |          tokio::runtime::enter::Enter::block_on
            |          <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |          |          
            |           --5.65%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
            |                     ts_query_cursor_next_match
            |                     ts_query_cursor__advance
            |                     |          
            |                     |--5.06%--ts_tree_cursor_current_status
            |                     |          |          
            |                     |           --5.05%--ts_subtree_extra
            |                     |          
            |                      --0.58%--ts_subtree_extra
            |          
             --0.53%--ts_subtree_extra

     3.25%     2.91%  hx               hx                  [.] ts_subtree_visible
            |          
             --2.91%--std::rt::lang_start
                       hx::main
                       hx::main_impl
                       tokio::runtime::Runtime::block_on
                       tokio::runtime::thread_pool::ThreadPool::block_on
                       tokio::runtime::enter::Enter::block_on
                       <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                       |          
                        --2.88%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                                  ts_query_cursor_next_match
                                  ts_query_cursor__advance
                                  |          
                                   --2.69%--ts_tree_cursor_parent_node
                                             |          
                                              --2.69%--ts_subtree_visible

     2.77%     2.72%  hx               hx                  [.] ts_language_alias_sequence
            |          
             --2.72%--std::rt::lang_start
                       hx::main
                       hx::main_impl
                       tokio::runtime::Runtime::block_on
                       tokio::runtime::thread_pool::ThreadPool::block_on
                       tokio::runtime::enter::Enter::block_on
                       <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                       |          
                        --2.70%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                                  ts_query_cursor_next_match
                                  ts_query_cursor__advance
                                  |          
                                   --2.21%--ts_tree_cursor_current_status
                                             |          
                                              --1.71%--ts_language_alias_sequence

     2.29%     2.29%  hx               hx                  [.] ts_language_alias_at
            |          
             --2.29%--std::rt::lang_start
                       hx::main
                       hx::main_impl
                       tokio::runtime::Runtime::block_on
                       tokio::runtime::thread_pool::ThreadPool::block_on
                       tokio::runtime::enter::Enter::block_on
                       <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                       |          
                        --2.27%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                                  ts_query_cursor_next_match
                                  ts_query_cursor__advance
                                  |          
                                  |--1.75%--ts_tree_cursor_parent_node
                                  |          |          
                                  |           --1.42%--ts_language_alias_at
                                  |          
                                   --0.51%--ts_language_alias_at

     1.69%     1.68%  hx               hx                  [.] ts_subtree_symbol
            |          
             --1.68%--std::rt::lang_start
                       hx::main
                       hx::main_impl
                       tokio::runtime::Runtime::block_on
                       tokio::runtime::thread_pool::ThreadPool::block_on
                       tokio::runtime::enter::Enter::block_on
                       <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
                       |          
                        --1.66%--<tree_sitter::QueryMatches<T> as core::iter::traits::iterator::Iterator>::next
                                  ts_query_cursor_next_match
                                  ts_query_cursor__advance
                                  |          
                                  |--1.07%--ts_tree_cursor_current_status
                                  |          |          
                                  |           --1.07%--ts_subtree_symbol
                                  |          
                                   --0.59%--ts_subtree_symbol

     1.24%     0.00%  hx               hx                  [.] <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |
            ---<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
               <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
               |          
                --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                          ts_query_cursor_next_capture
                          ts_query_cursor__advance
                          |          
                           --0.73%--ts_tree_cursor_current_status

     1.24%     0.00%  hx               hx                  [.] <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
            |
            ---<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
               |          
                --1.22%--<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
                          ts_query_cursor_next_capture
                          ts_query_cursor__advance
                          |          
                           --0.73%--ts_tree_cursor_current_status

     1.22%     0.00%  hx               hx                  [.] <tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
            |
            ---<tree_sitter::QueryCaptures<T> as core::iter::traits::iterator::Iterator>::next
               ts_query_cursor_next_capture
               ts_query_cursor__advance
               |          
                --0.73%--ts_tree_cursor_current_status

     1.22%     0.00%  hx               hx                  [.] ts_query_cursor_next_capture
            |
            ---ts_query_cursor_next_capture
               ts_query_cursor__advance
               |          
                --0.73%--ts_tree_cursor_current_status

     0.06%     0.02%  hx               hx                  [.] ts_tree_cursor_child_iterator_next
     0.05%     0.00%  hx               hx                  [.] ts_tree_cursor_goto_next_sibling
     0.03%     0.00%  hx               hx                  [.] ts_tree_cursor_goto_first_child
     0.03%     0.02%  hx               hx                  [.] length_add
     0.02%     0.00%  hx               hx                  [.] point_add
     0.02%     0.02%  hx               [unknown]           [k] 0xffffffffb2600f40
     0.01%     0.00%  hx               hx                  [.] ts_node_symbol
     0.01%     0.01%  hx               hx                  [.] ts_tree_cursor_iterate_children
     0.01%     0.01%  hx               hx                  [.] point__new
     0.01%     0.01%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_set_epi8
     0.01%     0.01%  hx               hx                  [.] ts_subtree_size
     0.01%     0.00%  hx               hx                  [.] ts_node_end_point
     0.01%     0.01%  hx               hx                  [.] ts_node__subtree
     0.01%     0.00%  hx               hx                  [.] ts_node_end_byte
     0.01%     0.01%  hx               hx                  [.] ts_language_public_symbol
     0.01%     0.01%  hx               hx                  [.] ts_node_new
     0.01%     0.00%  hx               [unknown]           [.] 0x0000000055875bdb
     0.01%     0.00%  hx               [unknown]           [.] 0x00007ffc74d47378
     0.00%     0.00%  hx               hx                  [.] ts_subtree_padding
     0.00%     0.00%  hx               hx                  [.] ts_tree_cursor_current_node
     0.00%     0.00%  hx               [unknown]           [.] 0x8000007ffc74d473
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_set_epi64x
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_sad_epu8
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_cmpeq_epi8
     0.00%     0.00%  hx               hx                  [.] str_indices::lines_lf::to_byte_idx
     0.00%     0.00%  hx               hx                  [.] core::ptr::mut_ptr::<impl *mut T>::is_null
     0.00%     0.00%  hx               hx                  [.] ts_subtree_child_count
     0.00%     0.00%  hx               hx                  [.] ts_query__pattern_map_search
     0.00%     0.00%  hx               hx                  [.] str_indices::chars::from_byte_idx
     0.00%     0.00%  hx               hx                  [.] length_zero
     0.00%     0.00%  hx               [unknown]           [k] 0000000000000000
     0.00%     0.00%  hx               hx                  [.] <&T as core::fmt::Display>::fmt
     0.00%     0.00%  hx               [unknown]           [.] 0x0000000000000001
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::is_null
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::guaranteed_eq
     0.00%     0.00%  hx               hx                  [.] <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_and_si128
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::align_to_offsets
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::m128iExt::as_i8x16
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_set1_epi8
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::m128iExt::as_u8x16
     0.00%     0.00%  hx               hx                  [.] core::ptr::non_null::NonNull<T>::new_unchecked
     0.00%     0.00%  hx               hx                  [.] core::mem::replace
     0.00%     0.00%  hx               hx                  [.] core::ptr::slice_from_raw_parts
     0.00%     0.00%  hx               hx                  [.] point_gt
     0.00%     0.00%  hx               hx                  [.] ts_node_start_byte
     0.00%     0.00%  hx               hx                  [.] ts_node_is_named
     0.00%     0.00%  hx               hx                  [.] point_lt
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_add_epi8
     0.00%     0.00%  hx               [unknown]           [.] 0x738000007ffc74d4
     0.00%     0.00%  hx               hx                  [.] core::ops::function::FnMut::call_mut
     0.00%     0.00%  hx               hx                  [.] ts_node_start_point
     0.00%     0.00%  hx               hx                  [.] ts_subtree_visible_child_count
     0.00%     0.00%  hx               hx                  [.] <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  tokio-runtime-w  [unknown]           [.] 0000000000000000
     0.00%     0.00%  tokio-runtime-w  hx                  [.] tokio::io::driver::Driver::turn
     0.00%     0.00%  hx               hx                  [.] ropey::tree::node_children::NodeChildren::search_line_break_idx
     0.00%     0.00%  hx               hx                  [.] core::slice::iter::Iter<T>::new
     0.00%     0.00%  hx               hx                  [.] ropey::slice::RopeSlice::new_with_range
     0.00%     0.00%  hx               hx                  [.] core::ptr::slice_from_raw_parts
     0.00%     0.00%  hx               hx                  [.] str_indices::lines_lf::count_breaks
     0.00%     0.00%  hx               hx                  [.] core::ptr::mut_ptr::<impl *mut T>::guaranteed_eq
     0.00%     0.00%  hx               hx                  [.] str_indices::chars::count
     0.00%     0.00%  hx               hx                  [.] <core::ops::range::RangeFrom<usize> as core::slice::index::SliceIndex<[T]>>::get_unchecked
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::align_to
     0.00%     0.00%  hx               hx                  [.] core::slice::raw::from_raw_parts
     0.00%     0.00%  hx               hx                  [.] ropey::tree::node_children::NodeChildren::search_char_idx
     0.00%     0.00%  hx               hx                  [.] core::array::<impl core::ops::index::Index<I> for [T; N]>::index
     0.00%     0.00%  hx               hx                  [.] core::cmp::min_by
     0.00%     0.00%  hx               hx                  [.] core::ptr::non_null::NonNull<T>::as_ptr
     0.00%     0.00%  hx               [unknown]           [.] 0x00007f984c2fec00
     0.00%     0.00%  hx               [unknown]           [.] 0x0000000000000008
     0.00%     0.00%  hx               hx                  [.] <chrono::format::DelayedFormat<I> as core::fmt::Display>::fmt
     0.00%     0.00%  hx               hx                  [.] core::ptr::non_null::NonNull<T>::as_ptr
     0.00%     0.00%  hx               hx                  [.] <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  hx               hx                  [.] core::ptr::metadata::from_raw_parts
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::split_at_unchecked
     0.00%     0.00%  hx               hx                  [.] core::ptr::slice_from_raw_parts
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::cast
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::is_null
     0.00%     0.00%  hx               hx                  [.] smallvec::SmallVec<A>::triple
     0.00%     0.00%  hx               hx                  [.] smallvec::SmallVecData<A>::inline
     0.00%     0.00%  hx               hx                  [.] str_indices::chars::to_byte_idx
     0.00%     0.00%  hx               hx                  [.] <ropey::tree::text_info::TextInfo as core::ops::arith::Add>::add
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_set1_epi64x
     0.00%     0.00%  hx               hx                  [.] core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next
     0.00%     0.00%  hx               hx                  [.] hashbrown::raw::RawIterHashInner<A>::new
     0.00%     0.00%  hx               hx                  [.] <core::str::iter::Chars as core::iter::traits::iterator::Iterator>::next::{{closure}}
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::chunks
     0.00%     0.00%  hx               hx                  [.] <helix_core::graphemes::RopeGraphemes as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  hx               hx                  [.] core::ptr::slice_from_raw_parts
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::is_null
     0.00%     0.00%  hx               hx                  [.] core::slice::raw::debug_check_data_len
     0.00%     0.00%  hx               hx                  [.] core::mem::replace
     0.00%     0.00%  hx               hx                  [.] core::str::<impl str>::chars
     0.00%     0.00%  hx               hx                  [.] <core::ops::range::Range<usize> as core::slice::index::SliceIndex<[T]>>::index
     0.00%     0.00%  hx               hx                  [.] <&T as core::convert::AsRef<U>>::as_ref
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::cast
     0.00%     0.00%  hx               hx                  [.] core::slice::raw::from_raw_parts_mut
     0.00%     0.00%  hx               hx                  [.] core::ptr::non_null::NonNull<T>::new_unchecked
     0.00%     0.00%  hx               hx                  [.] ts_subtree_named
     0.00%     0.00%  hx               hx                  [.] core::result::Result<T,E>::map_err
     0.00%     0.00%  hx               libpthread-2.33.so  [.] __pthread_mutex_lock
     0.00%     0.00%  hx               [unknown]           [.] 0x00007f984b4ee2f8
     0.00%     0.00%  hx               hx                  [.] core::slice::index::<impl core::ops::index::Index<I> for [T]>::index
     0.00%     0.00%  hx               hx                  [.] core::ptr::mut_ptr::<impl *mut T>::guaranteed_eq
     0.00%     0.00%  hx               [unknown]           [.] 0x00007f984b501ad8
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::contains
     0.00%     0.00%  hx               hx                  [.] <T as core::slice::cmp::SliceContains>::slice_contains
     0.00%     0.00%  hx               hx                  [.] core::str::converts::from_utf8_unchecked
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::as_ptr
     0.00%     0.00%  hx               hx                  [.] <core::str::iter::Chars as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  hx               hx                  [.] <core::iter::adapters::zip::Zip<A,B> as core::iter::adapters::zip::ZipImpl<A,B>>::next
     0.00%     0.00%  hx               hx                  [.] helix_term::application::Application::new
     0.00%     0.00%  hx               hx                  [.] core::slice::raw::debug_check_data_len
     0.00%     0.00%  hx               hx                  [.] core::ptr::const_ptr::<impl *const T>::is_null
     0.00%     0.00%  hx               hx                  [.] core::core_arch::x86::sse2::_mm_setzero_si128
     0.00%     0.00%  hx               hx                  [.] helix_tui::buffer::Cell::set_style
     0.00%     0.00%  hx               hx                  [.] <core::core_arch::x86::__m128i as core::core_arch::x86::m128iExt>::as_m128i
     0.00%     0.00%  hx               hx                  [.] core::str::validations::next_code_point
     0.00%     0.00%  hx               hx                  [.] <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  hx               hx                  [.] core::ptr::slice_from_raw_parts_mut
     0.00%     0.00%  hx               hx                  [.] core::ops::function::FnOnce::call_once
     0.00%     0.00%  hx               hx                  [.] ts_node__alias
     0.00%     0.00%  hx               hx                  [.] alloc::vec::Vec<T,A>::as_ptr
     0.00%     0.00%  hx               hx                  [.] <ropey::tree::text_info::TextInfo as core::ops::arith::AddAssign>::add_assign
     0.00%     0.00%  hx               hx                  [.] ropey::tree::node_children::NodeChildren::nodes
     0.00%     0.00%  hx               hx                  [.] helix_view::graphics::Modifier::insert
     0.00%     0.00%  hx               hx                  [.] core::ptr::mut_ptr::<impl *mut T>::is_null
     0.00%     0.00%  hx               hx                  [.] array__grow
     0.00%     0.00%  hx               hx                  [.] core::fmt::write
     0.00%     0.00%  hx               [unknown]           [.] 0x00007f984b50b330
     0.00%     0.00%  hx               [unknown]           [.] 0x00007f984b514390
     0.00%     0.00%  hx               hx                  [.] core::ptr::read
     0.00%     0.00%  hx               hx                  [.] helix_term::application::Application::handle_idle_timeout
     0.00%     0.00%  hx               hx                  [.] helix_term::ui::editor::EditorView::handle_idle_timeout
     0.00%     0.00%  hx               hx                  [.] <helix_view::graphics::Color as core::cmp::PartialEq>::ne
     0.00%     0.00%  hx               hx                  [.] <core::slice::iter::IterMut<T> as core::iter::traits::iterator::Iterator>::next
     0.00%     0.00%  hx               hx                  [.] core::ptr::mut_ptr::<impl *mut T>::is_null
     0.00%     0.00%  hx               hx                  [.] alloc::vec::Vec<T,A>::push
     0.00%     0.00%  hx               hx                  [.] <core::result::Result<T,E> as core::ops::try_trait::Try>::branch
     0.00%     0.00%  hx               hx                  [.] core::mem::replace
     0.00%     0.00%  hx               hx                  [.] core::sync::atomic::atomic_load
     0.00%     0.00%  hx               hx                  [.] core::task::wake::Waker::will_wake
     0.00%     0.00%  hx               hx                  [.] signal_hook::iterator::backend::SignalDelivery<R,E>::poll_pending
     0.00%     0.00%  hx               hx                  [.] futures_util::stream::futures_unordered::FuturesUnordered<Fut>::atomic_load_head_and_len_all
     0.00%     0.00%  hx               hx                  [.] alloc::sync::Arc<T>::as_ptr
     0.00%     0.00%  hx               hx                  [.] core::sync::atomic::atomic_load
     0.00%     0.00%  hx               hx                  [.] core::sync::atomic::atomic_load
     0.00%     0.00%  hx               hx                  [.] <&mut F as core::future::future::Future>::poll
     0.00%     0.00%  hx               hx                  [.] alloc::raw_vec::RawVec<T,A>::ptr
     0.00%     0.00%  hx               hx                  [.] core::ptr::non_null::NonNull<T>::new_unchecked
     0.00%     0.00%  hx               hx                  [.] futures_util::stream::stream::StreamExt::next
     0.00%     0.00%  hx               hx                  [.] core::sync::atomic::atomic_compare_exchange
     0.00%     0.00%  hx               hx                  [.] parking_lot_core::parking_lot::with_thread_data::THREAD_DATA::__getit
     0.00%     0.00%  tokio-runtime-w  hx                  [.] <alloc::vec::Vec<T,A> as core::ops::deref::Deref>::deref
     0.00%     0.00%  hx               libc-2.33.so        [.] __getpagesize
     0.00%     0.00%  hx               hx                  [.] __rust_dealloc
     0.00%     0.00%  hx               hx                  [.] core::str::<impl str>::len
     0.00%     0.00%  hx               hx                  [.] crossterm::event::sys::unix::parse::parse_event
     0.00%     0.00%  hx               hx                  [.] mio::sys::unix::selector::epoll::Selector::select
     0.00%     0.00%  hx               hx                  [.] __rdl_dealloc
     0.00%     0.00%  hx               hx                  [.] core::slice::<impl [T]>::is_empty
     0.00%     0.00%  hx               hx                  [.] core::ptr::non_null::NonNull<T>::as_ref
     0.00%     0.00%  hx               hx                  [.] core::ptr::drop_in_place<core::option::Option<alloc::boxed::Box<dyn core::ops::function::FnOnce<(&mut helix_term::compositor::Compositor,&mut helix_term::compositor::Context)>+Output = ()>>>
     0.00%     0.00%  hx               hx                  [.] crossterm::event::sys::unix::parse::parse_csi
     0.00%     0.00%  hx               hx                  [.] tokio::coop::with_budget::{{closure}}
     0.00%     0.00%  hx               hx                  [.] <crossterm::event::source::unix::UnixInternalEventSource as crossterm::event::source::EventSource>::try_read
     0.00%     0.00%  hx               hx                  [.] core::cell::Cell<T>::get
     0.00%     0.00%  tokio-runtime-w  libc-2.33.so        [.] epoll_wait
     0.00%     0.00%  hx               libc-2.33.so        [.] __clone
     0.00%     0.00%  hx               libc-2.33.so        [.] epoll_wait
     0.00%     0.00%  hx               libc-2.33.so        [.] syscall
     0.00%     0.00%  hx               hx                  [.] parking_lot_core::thread_parker::imp::ThreadParker::futex_wait
     0.00%     0.00%  tokio-runtime-w  [unknown]           [k] 0xffffffffb2600f40
     0.00%     0.00%  hx               [unknown]           [k] 0xffffffffb2600158
     0.00%     0.00%  tokio-runtime-w  [unknown]           [k] 0xffffffffb2600158


#
# (Tip: Add -I to perf record to sample register values, which will be visible in perf report sample context.)
#

Reproduction Steps

No response

Helix log

No response

Platform

Linux

Terminal Emulator

Alacritty 0.11.0 (e7bb6c2)

Helix Version

helix 0.6.0 (22ba668)

@nibon7 nibon7 added the C-bug Category: This is a bug label Mar 25, 2022
@archseer
Copy link
Member

This is grammar specific, \cc @the-mikedavis

Just to double check, you are compiling helix in release mode via cargo build --release right?

@nibon7
Copy link
Contributor Author

nibon7 commented Mar 25, 2022

I compile it in debug mode and I've tried the release version, the same issue exists.
The result of perf report is collected from debug version.

@nibon7
Copy link
Contributor Author

nibon7 commented Mar 25, 2022

The diff file can be generated in the helix repo.

git format-patch --stdout v0.4.0..v0.6.0 > test.diff

@nibon7
Copy link
Contributor Author

nibon7 commented Mar 25, 2022

asciicast

@archseer
Copy link
Member

The diff file can be generated in the helix repo.

git format-patch --stdout v0.4.0..v0.6.0 > test.diff

Thanks, that helps! I can reproduce it and it seems to affect typing afterwards as well.

@the-mikedavis
Copy link
Member

This might fall under #338? I can reproduce the lag by making a similarly large rust file

$ cat $(ls -t **.rs) > f.rs
$ ls -lh f.rs
-rw-r--r-- 1 michael users 2.7M Mar 25 08:22 f.rs
$ wc -l f.rs
62196 f.rs

There might be some improvements to tree-sitter-diff we can make to reduce the number of named nodes but I doubt it would be a noticeable improvement for very large files like these.

@kirawi kirawi added the A-tree-sitter Area: Tree-sitter label Mar 26, 2022
@mscofield0
Copy link

I don't know how treesitter operates exactly, but wouldn't streaming bits of the file to treesitter solve the issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-tree-sitter Area: Tree-sitter C-bug Category: This is a bug
Projects
None yet
Development

No branches or pull requests

5 participants