Function calls incorrectly formatted
Chưa có ai nhận issue này.
- #71 của @bbannier — đã đóng, không merge
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Tái hiện vấn đề bằng các đoạn mã Zeek được hiển thị và lệnh parse của tree-sitter. Theo dõi hành vi phân tích cú pháp và định dạng biểu thức cũng như lệnh gọi hàm; hoàn tất khi các lệnh gọi liền kề tạo ra CST chính xác, các chuỗi lệnh gọi dài không còn bị ngắt bên trong các đối số và mọi lệnh gọi đều có thể được đối sánh cho inlay hints.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
When many function calls are part of the same expression they can be broken incorrectly, e.g., the following input
f(1) + f(1) +
f(1) + f(1) +
f(1) + f(1) +
f(1) + f(1) +
f(1) + f(1) +
f(1) + f(1) +
f(1) + f(1) +
f(1) + f(1);
is formatted with a line break inside the function call
f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(
1) + f(1) + f(1) + f(1);
Looking at the produced CST this seems to be due to function calls in expressions not parsing correctly, e.g., with
f(1) + f(1);
I get
$ tree-sitter parse foo.zeek
(source_file [0, 0] - [1, 0]
(stmt [0, 0] - [0, 12]
(expr [0, 0] - [0, 11]
(expr [0, 0] - [0, 8]
(expr [0, 0] - [0, 4]
(expr [0, 0] - [0, 1]
(id [0, 0] - [0, 1]))
(expr_list [0, 2] - [0, 3]
(expr [0, 2] - [0, 3]
(constant [0, 2] - [0, 3]
(integer [0, 2] - [0, 3])))))
(expr [0, 7] - [0, 8]
(id [0, 7] - [0, 8])))
(expr_list [0, 9] - [0, 10]
(expr [0, 9] - [0, 10]
(constant [0, 9] - [0, 10]
(integer [0, 9] - [0, 10]))))))
(nl [0, 12] - [1, 0]))
If this had correct precedence I would expect two nodes (expr (expr (id)) (expr_list ...) next to each other; instead the function name of the second f gets incorrectly grouped next to the arguments of the first call.
The current "lightweight" impl also makes it impossible to match multiple function calls in the same expression, e.g., over in https://github.com/bbannier/zeek-language-server I cannot match all calls to compute parameter inlay hints, e.g.,
- Ngôn ngữ chính
- Python
- Star
- 11
- Fork
- 4
- Merge trung bình
- 1 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của zeek/zeekscript
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
zeek/zeekscript#137 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 38/100
zeek/zeekscript#120 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
zeek/zeekscript#91 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
zeek/zeekscript#83 · 1 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
zeek/zeekscript#63 ·
Tất cả issue của zeek/zeekscript
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
jbacalso24/mimry#291 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
from-review-extraction python severity:nit
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
LearningCircuit/local-deep-research#7462 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
mermaid_extract.py silently discards single-line state-diagram notes; sequence notes are keptĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
cathrynlavery/diagram-design#441 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Cleanup] Include the public header in work_split.cppCó thể đã có người làm @blozano-tt đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
tenstorrent/tt-metal#60850 ·
Maintainer thường phản hồi trong vòng 1 ngày