Comments are attached to wrong nodes as inner position

Đang mở
#2,004 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đá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
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
javascript, typescript
Lĩnh vực
compilers

Hướng nghiên cứu

Tái hiện sự cố trên trang parse demo của Esprima bằng JavaScript được cung cấp và tùy chọn “Attach comments”. Theo dõi việc gắn comment từ điểm vào đó và xác minh rằng các comment không bị nhân đôi hoặc gắn vào các node không đúng, đồng thời giữ Comment 3 là comment bên trong của block tương ứng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Steps to reproduce:

  1. Use Esprima demo page: https://esprima.org/demo/parse.html
  2. Copy paste this code inside the editor
function a() {
   var b = 5;
   /* Comment1 */
}
/* Comment2 */
{
   /* Comment 3 */
}
  1. Check option (checkbox) "Attach comments"

Expected output:
All comments are trailing or leading with exception of the inner comment for "Comment 3"

Actual output:

{
    "type": "Program",
    "body": [
        {
            "type": "FunctionDeclaration",
            "id": {
                "type": "Identifier",
                "name": "a"
            },
            "params": [],
            "body": {
                "type": "BlockStatement",
                "body": [
                    {
                        "type": "VariableDeclaration",
                        "declarations": [
                            {
                                "type": "VariableDeclarator",
                                "id": {
                                    "type": "Identifier",
                                    "name": "b"
                                },
                                "init": {
                                    "type": "Literal",
                                    "value": 5,
                                    "raw": "5"
                                }
                            }
                        ],
                        "kind": "var",
                        "trailingComments": [
                            {
                                "type": "Block",
                                "value": " Comment1 ",
                                "range": [
                                    32,
                                    46
                                ]
                            }
                        ]
                    }
                ]
            },
            "generator": false,
            "expression": false,
            "async": false,
            "trailingComments": [
                {
                    "type": "Block",
                    "value": " Comment2 ",
                    "range": [
                        49,
                        63
                    ]
                }
            ]
        },
        {
            "type": "BlockStatement",
            "body": [],
            "innerComments": [
                {
                    "type": "Block",
                    "value": " Comment1 ",
                    "range": [
                        32,
                        46
                    ]
                },
                {
                    "type": "Block",
                    "value": " Comment2 ",
                    "range": [
                        49,
                        63
                    ]
                },
                {
                    "type": "Block",
                    "value": " Comment 3 ",
                    "range": [
                        69,
                        84
                    ]
                }
            ]
        }
    ],
    "sourceType": "script"
}
Ngôn ngữ chính
TypeScript
Star
7.1k
Fork
772
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của jquery/esprima

Tất cả issue của jquery/esprima

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.