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

Implement //nolint parsing similar to golangci-lint #3562

Merged
merged 5 commits into from
Jun 7, 2023

Conversation

patrickmscott
Copy link
Contributor

@patrickmscott patrickmscott commented May 17, 2023

#3561

Look for nolint comments and collect the ranges of where they apply. If a node immediately follows a range with the same column, expand the range to include the node.

Add tests that verify errors are filtered out.

What type of PR is this?

Feature

What does this PR do? Why is it needed?

Parses //nolint comments and filters out errors from nogo.

Which issues(s) does this PR fix?

Fixes #3561

Other notes for review

@patrickmscott
Copy link
Contributor Author

Test failures appear unrelated to the change

Copy link
Collaborator

@fmeum fmeum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me at first glance, but I am not familiar enough with nogo to review this more deeply.

@sluongng Could you take a look?

go/tools/builders/nolint.go Outdated Show resolved Hide resolved
Copy link
Contributor

@sluongng sluongng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great work @patrickmscott!! Damn impressive.

I have a small brain problem where I don't understand all of these though.
I think splitting these into 2 smaller PRs might be easier for reviewers to consume:

  1. Introduce //nolint + relevant tests
  2. Allow //nolint: linterA,linterB + relevant tests

You would also want to update nogo documentation to highlight what do we support.
Keep in mind that down in each analyzer, they could also have there own ignore lint error directive, so we want to highlight that for future users of this feature to be aware of.

go/tools/builders/nogo_main.go Outdated Show resolved Hide resolved
go/tools/builders/nogo_main.go Outdated Show resolved Hide resolved
go/tools/builders/nogo_main.go Outdated Show resolved Hide resolved
go/tools/builders/nolint.go Outdated Show resolved Hide resolved
tests/core/nogo/nolint/nolint_test.go Show resolved Hide resolved
go/tools/builders/nogo_main.go Outdated Show resolved Hide resolved
go/tools/builders/nogo_main.go Show resolved Hide resolved
@patrickmscott
Copy link
Contributor Author

@sluongng I updated to use ast.CommentMap which handles comment association better than I was. Broke apart the tests to hopefuly clarify what is being tested.

@patrickmscott
Copy link
Contributor Author

@sluongng any update? The test failure appears unrelated to my change.

@fmeum
Copy link
Collaborator

fmeum commented Jun 5, 2023

The failure should go away with a rebase onto master.

Copy link
Contributor

@sluongng sluongng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! I have a few style nits that I think should reduce future churns, but overall this looks good. We should be able to iterate from here based on the nolint_test setup.

Passing this PR to @fmeum and @linzhp for further review.

go/tools/builders/nolint_test.go Outdated Show resolved Hide resolved
tests/core/nogo/nolint/nolint_test.go Outdated Show resolved Hide resolved
tests/core/nogo/nolint/nolint_test.go Outdated Show resolved Hide resolved
Look for nolint comments and collect the ranges of where they apply. If
a node immediately follows a range with the same column, expand the
range to include the node.

Add tests that verify errors are filtered out.
Inline the new report function and add some comments about nolint
ranges.
Include a failing test that shows the column issue. Will work on a fix.
This is better than the logic used by golangci-lint in that it does not
incorrectly attribute an inline comment with the next line if it
contains an ast.Node with a matching column (see inline_column test).
Use table driven tests and `CombinedOutput`.
@patrickmscott
Copy link
Contributor Author

@fmeum or @linzhp can you merge?

@fmeum fmeum merged commit 286e964 into bazelbuild:master Jun 7, 2023
2 checks passed
@patrickmscott patrickmscott deleted the patrick/nolint branch June 7, 2023 18:03
renovate bot added a commit to kreempuff/rules_unreal_engine that referenced this pull request Jun 22, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.39.1` -> `v0.40.0` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

###
[`v0.40.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.40.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.39.1...v0.40.0)

#### What's Changed

- Revert "Add automatic platform detection from inbound crosstool_top a…
by [@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3468
- bzlmod: Add dedicated documentation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3519
- Create TEST_SHARD_STATUS_FILE when sharding tests by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3547
- Move CI flags to .bazelrc and fix BwoB build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3551
- Re-enable go_path_test on RBE by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3539
- nogo: provide usage doc by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3534
- respect global strip config by
[@&#8203;malt3](https://togithub.com/malt3) in
[bazelbuild/rules_go#3527
- stdliblist: return generated files by
[@&#8203;grampelberg](https://togithub.com/grampelberg) in
[bazelbuild/rules_go#3552
- Fix formatting in nogo usage doc by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3557
- Fix `goexperiment.*` build tags by
[@&#8203;lbcjbb](https://togithub.com/lbcjbb) in
[bazelbuild/rules_go#3556
- Remove tests for `go_path`'s `link` mode by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3565
- Fix tests with `--incompatible_disable_starlark_host_transitions` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3560
- Create empty `.go` file in a random location by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3566
- gopackagesdriver: fix interface to work with golangci-lint
([#&#8203;3523](https://togithub.com/bazelbuild/rules_go/issues/3523))
by [@&#8203;grampelberg](https://togithub.com/grampelberg) in
[bazelbuild/rules_go#3524
- Fix typo in load statement for bzlmod docs by
[@&#8203;Sovietaced](https://togithub.com/Sovietaced) in
[bazelbuild/rules_go#3570
- context: remove unused import by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3571
- docs: Mention `use_repo` automation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3573
- Test basic-gazelle example with incompatible flags by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3575
- go_sdk extension: create `go_host_compatible_sdk` repository by
[@&#8203;ylecornec](https://togithub.com/ylecornec) in
[bazelbuild/rules_go#3543
- docs: Mention that `gazelle:prefix` can be replaced by `go.mod` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3577
- go_download_sdk: apply extraction workaround to zips on non-windows
OSs by [@&#8203;jayconrod](https://togithub.com/jayconrod) in
[bazelbuild/rules_go#3563
- Fix `go_download_sdk` with Bazel dev versions by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3580
- Implement //nolint parsing similar to golangci-lint by
[@&#8203;patrickmscott](https://togithub.com/patrickmscott) in
[bazelbuild/rules_go#3562

#### New Contributors

- [@&#8203;bricedp](https://togithub.com/bricedp) made their first
contribution in
[bazelbuild/rules_go#3512
- [@&#8203;patrickmscott](https://togithub.com/patrickmscott) made their
first contribution in
[bazelbuild/rules_go#3528
- [@&#8203;grampelberg](https://togithub.com/grampelberg) made their
first contribution in
[bazelbuild/rules_go#3552
- [@&#8203;Sovietaced](https://togithub.com/Sovietaced) made their first
contribution in
[bazelbuild/rules_go#3570
- [@&#8203;ylecornec](https://togithub.com/ylecornec) made their first
contribution in
[bazelbuild/rules_go#3543

**Full Changelog**:
bazelbuild/rules_go@v0.39.1...v0.40.0

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"bfc5ce70b9d1634ae54f4e7b495657a18a04e0d596785f672d35d5f505ab491a",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.40.0/rules_go-v0.40.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.40.0/rules_go-v0.40.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.20.5")

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
renovate bot added a commit to cgrindel/rules_swift_package_manager that referenced this pull request Jun 23, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.39.1` -> `v0.40.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

###
[`v0.40.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.40.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.39.1...v0.40.0)

#### What's Changed

- Revert "Add automatic platform detection from inbound crosstool_top a…
by [@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3468
- bzlmod: Add dedicated documentation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3519
- Create TEST_SHARD_STATUS_FILE when sharding tests by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3547
- Move CI flags to .bazelrc and fix BwoB build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3551
- Re-enable go_path_test on RBE by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3539
- nogo: provide usage doc by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3534
- respect global strip config by
[@&#8203;malt3](https://togithub.com/malt3) in
[bazelbuild/rules_go#3527
- stdliblist: return generated files by
[@&#8203;grampelberg](https://togithub.com/grampelberg) in
[bazelbuild/rules_go#3552
- Fix formatting in nogo usage doc by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3557
- Fix `goexperiment.*` build tags by
[@&#8203;lbcjbb](https://togithub.com/lbcjbb) in
[bazelbuild/rules_go#3556
- Remove tests for `go_path`'s `link` mode by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3565
- Fix tests with `--incompatible_disable_starlark_host_transitions` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3560
- Create empty `.go` file in a random location by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3566
- gopackagesdriver: fix interface to work with golangci-lint
([#&#8203;3523](https://togithub.com/bazelbuild/rules_go/issues/3523))
by [@&#8203;grampelberg](https://togithub.com/grampelberg) in
[bazelbuild/rules_go#3524
- Fix typo in load statement for bzlmod docs by
[@&#8203;Sovietaced](https://togithub.com/Sovietaced) in
[bazelbuild/rules_go#3570
- context: remove unused import by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3571
- docs: Mention `use_repo` automation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3573
- Test basic-gazelle example with incompatible flags by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3575
- go_sdk extension: create `go_host_compatible_sdk` repository by
[@&#8203;ylecornec](https://togithub.com/ylecornec) in
[bazelbuild/rules_go#3543
- docs: Mention that `gazelle:prefix` can be replaced by `go.mod` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3577
- go_download_sdk: apply extraction workaround to zips on non-windows
OSs by [@&#8203;jayconrod](https://togithub.com/jayconrod) in
[bazelbuild/rules_go#3563
- Fix `go_download_sdk` with Bazel dev versions by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3580
- Implement //nolint parsing similar to golangci-lint by
[@&#8203;patrickmscott](https://togithub.com/patrickmscott) in
[bazelbuild/rules_go#3562

#### New Contributors

- [@&#8203;bricedp](https://togithub.com/bricedp) made their first
contribution in
[bazelbuild/rules_go#3512
- [@&#8203;patrickmscott](https://togithub.com/patrickmscott) made their
first contribution in
[bazelbuild/rules_go#3528
- [@&#8203;grampelberg](https://togithub.com/grampelberg) made their
first contribution in
[bazelbuild/rules_go#3552
- [@&#8203;Sovietaced](https://togithub.com/Sovietaced) made their first
contribution in
[bazelbuild/rules_go#3570
- [@&#8203;ylecornec](https://togithub.com/ylecornec) made their first
contribution in
[bazelbuild/rules_go#3543

**Full Changelog**:
bazelbuild/rules_go@v0.39.1...v0.40.0

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"bfc5ce70b9d1634ae54f4e7b495657a18a04e0d596785f672d35d5f505ab491a",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.40.0/rules_go-v0.40.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.40.0/rules_go-v0.40.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.20.5")

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cgrindel/rules_swift_package_manager).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to cgrindel/bazel-starlib that referenced this pull request Jun 23, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.39.1` -> `v0.40.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

###
[`v0.40.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.40.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.39.1...v0.40.0)

#### What's Changed

- Revert "Add automatic platform detection from inbound crosstool_top a…
by [@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3468
- bzlmod: Add dedicated documentation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3519
- Create TEST_SHARD_STATUS_FILE when sharding tests by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3547
- Move CI flags to .bazelrc and fix BwoB build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3551
- Re-enable go_path_test on RBE by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3539
- nogo: provide usage doc by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3534
- respect global strip config by
[@&#8203;malt3](https://togithub.com/malt3) in
[bazelbuild/rules_go#3527
- stdliblist: return generated files by
[@&#8203;grampelberg](https://togithub.com/grampelberg) in
[bazelbuild/rules_go#3552
- Fix formatting in nogo usage doc by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3557
- Fix `goexperiment.*` build tags by
[@&#8203;lbcjbb](https://togithub.com/lbcjbb) in
[bazelbuild/rules_go#3556
- Remove tests for `go_path`'s `link` mode by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3565
- Fix tests with `--incompatible_disable_starlark_host_transitions` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3560
- Create empty `.go` file in a random location by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3566
- gopackagesdriver: fix interface to work with golangci-lint
([#&#8203;3523](https://togithub.com/bazelbuild/rules_go/issues/3523))
by [@&#8203;grampelberg](https://togithub.com/grampelberg) in
[bazelbuild/rules_go#3524
- Fix typo in load statement for bzlmod docs by
[@&#8203;Sovietaced](https://togithub.com/Sovietaced) in
[bazelbuild/rules_go#3570
- context: remove unused import by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3571
- docs: Mention `use_repo` automation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3573
- Test basic-gazelle example with incompatible flags by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3575
- go_sdk extension: create `go_host_compatible_sdk` repository by
[@&#8203;ylecornec](https://togithub.com/ylecornec) in
[bazelbuild/rules_go#3543
- docs: Mention that `gazelle:prefix` can be replaced by `go.mod` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3577
- go_download_sdk: apply extraction workaround to zips on non-windows
OSs by [@&#8203;jayconrod](https://togithub.com/jayconrod) in
[bazelbuild/rules_go#3563
- Fix `go_download_sdk` with Bazel dev versions by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3580
- Implement //nolint parsing similar to golangci-lint by
[@&#8203;patrickmscott](https://togithub.com/patrickmscott) in
[bazelbuild/rules_go#3562

#### New Contributors

- [@&#8203;bricedp](https://togithub.com/bricedp) made their first
contribution in
[bazelbuild/rules_go#3512
- [@&#8203;patrickmscott](https://togithub.com/patrickmscott) made their
first contribution in
[bazelbuild/rules_go#3528
- [@&#8203;grampelberg](https://togithub.com/grampelberg) made their
first contribution in
[bazelbuild/rules_go#3552
- [@&#8203;Sovietaced](https://togithub.com/Sovietaced) made their first
contribution in
[bazelbuild/rules_go#3570
- [@&#8203;ylecornec](https://togithub.com/ylecornec) made their first
contribution in
[bazelbuild/rules_go#3543

**Full Changelog**:
bazelbuild/rules_go@v0.39.1...v0.40.0

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"bfc5ce70b9d1634ae54f4e7b495657a18a04e0d596785f672d35d5f505ab491a",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.40.0/rules_go-v0.40.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.40.0/rules_go-v0.40.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.20.5")

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cgrindel/bazel-starlib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
tingilee pushed a commit to tingilee/rules_go that referenced this pull request Jul 19, 2023
* Implement //nolint parsing similar to golangci-lint

Look for nolint comments and collect the ranges of where they apply. If
a node immediately follows a range with the same column, expand the
range to include the node.

Add tests that verify errors are filtered out.

* Use a map instead of custom Linters type

Inline the new report function and add some comments about nolint
ranges.

* Add separate tests for various filters

Include a failing test that shows the column issue. Will work on a fix.

* Use ast.CommentMap to associate comments to nodes

This is better than the logic used by golangci-lint in that it does not
incorrectly attribute an inline comment with the next line if it
contains an ast.Node with a matching column (see inline_column test).

* Address PR feedback

Use table driven tests and `CombinedOutput`.

---------

Co-authored-by: Patrick Scott <patrick.scott@observeinc.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Parse nolint comments like golangci-lint within nogo
4 participants