Skip to content

Commit 2f9b144

Browse files
committed
Initial setup
Signed-off-by: Alexander Kurbatov <sir.alkurbatov@yandex.ru>
1 parent 28d52c1 commit 2f9b144

File tree

6 files changed

+202
-1
lines changed

6 files changed

+202
-1
lines changed

.dir-locals.el

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
((nil . ((format-all-formatters . (("Go" gofmt goimports)))))
2+
(go-ts-mode
3+
(eval add-hook 'before-save-hook #'format-all-buffer nil 'local)))

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Puzzle inputs
2+
input.txt

.golangci.yaml

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
run:
2+
deadline: 5m
3+
4+
linters-settings:
5+
dupl:
6+
threshold: 100
7+
errorlint:
8+
errorf: true
9+
errcheck:
10+
check-type-assertions: true
11+
check-blank: true
12+
exhaustive:
13+
check-generated: false
14+
default-signifies-exhaustive: false
15+
fieldalignment:
16+
suggest-new: true
17+
funlen:
18+
lines: 65
19+
statements: 40
20+
gocognit:
21+
min-complexity: 15
22+
gocyclo:
23+
min-complexity: 10
24+
goconst:
25+
min-len: 2
26+
min-occurrences: 2
27+
gocritic:
28+
enabled-tags:
29+
- diagnostic
30+
- experimental
31+
- opinionated
32+
- performance
33+
- style
34+
disabled-checks:
35+
- dupImport
36+
- importShadow
37+
- unnecessaryBlock
38+
gofumpt:
39+
extra-rules: true
40+
govet:
41+
check-shadowing: true
42+
fieldalignment: true
43+
lll:
44+
line-length: 100
45+
misspell:
46+
locale: US
47+
nestif:
48+
min-complexity: 4
49+
nolintlint:
50+
require-explanation: true
51+
require-specific: true
52+
revive:
53+
rules:
54+
- name: blank-imports
55+
- name: context-as-argument
56+
- name: context-keys-type
57+
- name: dot-imports
58+
- name: empty-block
59+
- name: error-naming
60+
- name: error-return
61+
- name: error-strings
62+
- name: errorf
63+
- name: exported
64+
- name: if-return
65+
- name: increment-decrement
66+
- name: indent-error-flow
67+
- name: package-comments
68+
- name: range
69+
- name: receiver-naming
70+
- name: redefines-builtin-id
71+
- name: struct-tag
72+
- name: superfluous-else
73+
- name: time-naming
74+
- name: unexported-return
75+
- name: unreachable-code
76+
- name: unused-parameter
77+
- name: var-declaration
78+
- name: var-naming
79+
80+
linters:
81+
disable-all: true
82+
enable:
83+
- asasalint
84+
- asciicheck
85+
- bidichk
86+
- bodyclose
87+
- cyclop
88+
# - deadcode
89+
- depguard
90+
- dogsled
91+
# - dupl
92+
- durationcheck
93+
- errcheck
94+
- errchkjson
95+
- errname
96+
- errorlint
97+
- exhaustive
98+
# - exhaustivestruct
99+
- exportloopref
100+
- forbidigo
101+
- funlen
102+
# - gci
103+
# - gochecknoglobals
104+
# - gochecknoinits
105+
- gocognit
106+
- goconst
107+
- gocritic
108+
- gocyclo
109+
- godot
110+
- godox
111+
- goerr113
112+
- gofmt
113+
- gofumpt
114+
# - goheader
115+
- goimports
116+
# - gomnd
117+
- gomodguard
118+
- goprintffuncname
119+
- gosec
120+
- gosimple
121+
- gosmopolitan
122+
- govet
123+
- grouper
124+
# - ifshort
125+
# - ireturn
126+
- importas
127+
- ineffassign
128+
- interfacebloat
129+
- lll
130+
- makezero
131+
- misspell
132+
- nakedret
133+
- nestif
134+
- nilerr
135+
- nilnil
136+
# - nlreturn
137+
- noctx
138+
- nolintlint
139+
- nosprintfhostport
140+
# - paralleltest
141+
- prealloc
142+
- predeclared
143+
- reassign
144+
- revive
145+
# - rowserrcheck
146+
# - sqlclosecheck
147+
- staticcheck
148+
# - structcheck
149+
- stylecheck
150+
- tagalign
151+
- testpackage
152+
- thelper
153+
# - tparallel
154+
- typecheck
155+
- unconvert
156+
- unparam
157+
- unused
158+
- usestdlibvars
159+
# - varcheck
160+
# - wastedassign
161+
- whitespace
162+
# - wrapcheck
163+
- wsl
164+
- zerologlint

.pre-commit-config.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
repos:
3+
- repo: https://github.com/pre-commit/pre-commit-hooks
4+
rev: v4.5.0
5+
hooks:
6+
- id: end-of-file-fixer
7+
8+
- repo: https://github.com/golangci/golangci-lint
9+
rev: v1.55.2
10+
hooks:
11+
- id: golangci-lint

README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,19 @@
1-
# adventofcode
1+
**Table of Contents**
2+
3+
- [adventofcode](#adventofcode)
4+
- [Development](#development)
5+
- [Code quality](#code-quality)
6+
- [License](#license)
7+
8+
# adventofcode
9+
10+
## Development
11+
### Code quality
12+
1. Install [`gofumpt`](https://github.com/mvdan/gofumpt#installation) for improved code formatting.
13+
2. Install [`golangci-lint`](https://golangci-lint.run/usage/install/) for code linting.
14+
3. Install [`pre-commit`](https://pre-commit.com/#install) to run linters before commit.
15+
16+
## License
17+
Copyright (c) 2023 Alexander Kurbatov
18+
19+
Licensed under the [GPLv3](LICENSE).

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module github.com/alkurbatov/adventofcode
2+
3+
go 1.21.4

0 commit comments

Comments
 (0)