# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

version: "2"
linters:
  exclusions:
    paths:
      - answer-data
      - ui
      - i18n
  enable:
    - asasalint # checks for pass []any as any in variadic func(...any)
    - asciicheck # checks that your code does not contain non-ASCII identifiers
    - bidichk # checks for dangerous unicode character sequences
    - bodyclose # checks whether HTTP response body is closed successfully
    - canonicalheader # checks whether net/http.Header uses canonical header
    - copyloopvar # detects places where loop variables are copied (Go 1.22+)
    - gocritic # provides diagnostics that check for bugs, performance and style issues
    - misspell # finds commonly misspelled English words in comments and strings
    - modernize # detects code that can be modernized to use newer Go features
    - testifylint # checks usage of github.com/stretchr/testify
    - unconvert # removes unnecessary type conversions
    - unparam # reports unused function parameters
    - whitespace # detects leading and trailing whitespace

formatters:
  enable:
    - gofmt
    - goimports
  settings:
    gofmt:
      simplify: true
      rewrite-rules:
        - pattern: 'interface{}'
          replacement: 'any'
