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

Community fixes + Speed up the search #20

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
8abac1c
Fix typo
vlad-stoian Oct 30, 2019
ac05a61
Adds fuzzing target
catenacyber Feb 26, 2020
e4f1e88
Fix bug found by fuzzing
catenacyber Feb 26, 2020
f182849
Go mod init
john-nguyen09 May 3, 2020
486a244
Avoid interface penalty
john-nguyen09 May 3, 2020
33eed32
Update .travis.yml
santosh653 Oct 23, 2020
4fb02ce
Merge remote-tracking branch 'vlad/patch-1'
0uep Sep 20, 2021
7d1d883
Merge remote-tracking branch 'origin/fuzz'
0uep Sep 20, 2021
6839d91
Merge remote-tracking branch 'john/master'
0uep Sep 20, 2021
ec355d4
Generate protobuf with recent version
0uep Sep 20, 2021
7e56367
Change ownership: sahilm -> teal-finance
0uep Sep 20, 2021
4ba46d9
Replace dep/gopkg/makefile by Go modules
0uep Sep 20, 2021
0846ef6
Move FuzzFuzzyFind() in package fuzzy_test
0uep Sep 20, 2021
d9c90bd
Fix linter warnings
0uep Sep 20, 2021
68feeb7
Merge remote-tracking branch 'santosh/master'
0uep Sep 20, 2021
4353480
Update dependencies
0uep Sep 21, 2021
0310182
Fix linter wàrnings in the example
0uep Sep 21, 2021
37ae957
Rename variables, split FindForm()
0uep Sep 21, 2021
676c508
Enable matching between "A_B" "A-B" "a/b" "A.b"
0uep Sep 21, 2021
9011deb
Increase score for case sensitive matching
0uep Sep 21, 2021
85bb291
Improve source code quality
0uep Sep 21, 2021
f2efde3
Add memory-optimized func BestMatch() and BestMatchFrom()
0uep Sep 22, 2021
927f0a0
Extend the unit-tests
0uep Sep 22, 2021
6cf5694
Update README and Copyright
0uep Sep 22, 2021
23d0bc5
Test equalFold()
0uep Sep 22, 2021
9f12795
Revert extra bonuses to have same upstream score
0uep Sep 22, 2021
ca1004a
Compare with sahilm's and isacikgoz's forks
0uep Sep 22, 2021
59c8e55
Compare with sahilm's and isacikgoz's forks
0uep Sep 22, 2021
9a75a72
Disable some annoying linters
0uep Sep 22, 2021
445e962
Rewrite two bottleneck functions
0uep Sep 22, 2021
ab24ab6
Merge pull request #1 from teal-finance/refactoring
0uep Sep 22, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
modules-download-mode: readonly

linters:

enable:
- asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers [fast: true, auto-fix: false]
- bodyclose # checks whether HTTP response body is closed successfully [fast: false, auto-fix: false]
- cyclop # checks function and package cyclomatic complexity
- deadcode # Finds unused code [fast: false, auto-fix: false]
- depguard # Go linter that checks if package imports are in a list of acceptable packages [fast: false, auto-fix: false]
- dogsled # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) [fast: true, auto-fix: false]
- dupl # Tool for code clone detection [fast: true, auto-fix: false]
- durationcheck # check for two durations multiplied together [fast: false, auto-fix: false]
- errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false]
- errname # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false]
- errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false]
- exhaustive # checks for pointers to enclosing loop variables [fast: false, auto-fix: false]
- exhaustivestruct # Checks if all struct's fields are initialized
- exportloopref # check exhaustiveness of enum switch statements [fast: false, auto-fix: false]
- forbidigo # we want to use some fmt.Println. Forbids identifiers
- forcetypeassert # finds forced type assertions [fast: true, auto-fix: false]
- funlen # Tool for detection of long functions [fast: true, auto-fix: false]
- gci # mix the std and tealticks imports. Gci control golang package import order and make it always deterministic. [fast: true, auto-fix: true]
- gochecknoinits # we want to use init(). gochecknoinits checks that no init functions are present in Go code
- gocognit # Computes and checks the cognitive complexity of functions [fast: true, auto-fix: false]
- goconst # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
- gocritic # Provides many diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false]
- gocyclo # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
- godot # Check if comments end in a period [fast: true, auto-fix: true]
- goerr113 # Golang linter to check the errors handling expressions
- gofmt # goimports does more. Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
- gofumpt # mix the std and tealticks imports. Gofumpt checks whether code was gofumpt-ed.
- goheader # Checks is file header matches to pattern [fast: true, auto-fix: false]
- goimports # Goimports does everything that gofmt does. Additionally it checks unused imports [fast: true, auto-fix: true]
- gomnd # An analyzer to detect magic numbers. [fast: true, auto-fix: false]
- gomnd # hard coded values in source code
- gomoddirectives # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. [fast: true, auto-fix: false]
- gomodguard # Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations. [fast: true, auto-fix: false]
- goprintffuncname # Checks that printf-like functions are named with `f` at the end [fast: true, auto-fix: false]
- gosec # gas: Inspects source code for security problems [fast: false, auto-fix: false]
- gosimple # megacheck: Linter for Go source code that specializes in simplifying a code [fast: false, auto-fix: false]
- govet # vet, vetshadow: Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
- ifshort # Checks that your code uses short syntax for if-statements whenever possible [fast: true, auto-fix: false]
- importas # Enforces consistent import aliases [fast: false, auto-fix: false]
- ineffassign # Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
- lll # Reports long lines [fast: true, auto-fix: false]
- makezero # Finds slice declarations with non-zero initial length [fast: false, auto-fix: false]
- misspell # Finds commonly misspelled English words in comments [fast: true, auto-fix: true]
- nakedret # Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false]
- nestif # Reports deeply nested if statements [fast: true, auto-fix: false]
- nilerr # Finds the code that returns nil even if it checks that the error is not nil. [fast: false, auto-fix: false]
- noctx # noctx finds sending http request without context.Context [fast: false, auto-fix: false]
- nolintlint # Reports ill-formed or insufficient nolint directives [fast: true, auto-fix: false]
- prealloc # Finds slice declarations that could potentially be preallocated [fast: true, auto-fix: false]
- predeclared # find code that shadows one of Go's predeclared identifiers [fast: true, auto-fix: false]
- promlinter # Check Prometheus metrics naming via promlint [fast: true, auto-fix: false]
- revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. [fast: false, auto-fix: false]
- rowserrcheck # checks whether Err of rows is checked successfully [fast: false, auto-fix: false]
- sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed. [fast: false, auto-fix: false]
- staticcheck # megacheck: Staticcheck is a go vet on steroids, applying a ton of static analysis checks [fast: false, auto-fix: false]
- structcheck # Finds unused struct fields [fast: false, auto-fix: false]
- stylecheck # Stylecheck is a replacement for golint [fast: false, auto-fix: false]
- tagliatelle # Checks the struct tags. [fast: true, auto-fix: false]
- testpackage # we want package name `ref_test` instead of `ref`. testpackage wants separate _test package
- thelper # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers
- tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes [fast: false, auto-fix: false]
- typecheck # Like the front-end of a Go compiler, parses and type-checks Go code [fast: false, auto-fix: false]
- unconvert # Remove unnecessary type conversions [fast: false, auto-fix: false]
- unparam # Reports unused function parameters [fast: false, auto-fix: false]
- unused # megacheck: Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false]
- varcheck # Finds unused global variables and constants [fast: false, auto-fix: false]
- wastedassign # wastedassign finds wasted assignment statements. [fast: false, auto-fix: false]
- whitespace # Tool for detection of leading and trailing whitespace [fast: true, auto-fix: true]
- wrapcheck # Checks that errors returned from external packages are wrapped

disable:
- gochecknoglobals # we simply use global vars. gochecknoglobals checks that no global variables exist
- godox # we know our code contains TODO / FIXME. godox detects FIXME, TODO and other comment keywords
- golint # Replaced by revive. Gofmt reformats Go source code, whereas golint prints out style mistakes
- interfacer # Replaced by exportloopref. Suggest narrower interface types
- maligned # Replaced by govet 'fieldalignment' (detect Go structs that would take less memory if their fields were sorted)
- nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false]
- paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test
- scopelint # Replaced by exportloopref. scopelint checks for unpinned variables in go programs
- wsl # Whitespace Linter - Forces you to use empty lines!
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
arch:
- amd64
- ppc64le
language: go
go:
- 1.x
Expand Down
20 changes: 0 additions & 20 deletions Gopkg.lock

This file was deleted.

4 changes: 0 additions & 4 deletions Gopkg.toml

This file was deleted.

3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
The MIT License (MIT)

Copyright (c) 2017 Sahil Muthoo
Copyright (c) 2017-2021 Sahil Muthoo and some other contributors
Copyright (c) 2021 Teal.Finance contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
57 changes: 0 additions & 57 deletions Makefile

This file was deleted.

Loading