Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Function calls incorrectly formatted

Aperta
#69 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
compilers, tooling

Direzione di ricerca

Riproduci il problema con gli snippet Zeek mostrati e il comando di parsing di tree-sitter. Traccia il comportamento di parsing e formattazione delle espressioni e delle chiamate di funzione; il lavoro è completato quando le chiamate adiacenti producono il CST corretto, le catene lunghe di chiamate non si interrompono più all’interno degli argomenti e tutte le chiamate possono essere associate per gli inlay hints.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.,

Screenshot 2023-12-16 at 1 20 29 AM
Lingua principale
Python
Stelle
11
Fork
4
Merge medio
2g 19h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di zeek/zeekscript

Tutte le issue di zeek/zeekscript

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.