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

Refactor code_indexer to use an SearchOptions struct for PerformSearch #29724

Merged
merged 8 commits into from
Mar 16, 2024

Conversation

6543
Copy link
Member

@6543 6543 commented Mar 11, 2024

similar to how it's already done for the issue_indexer


Sponsored by Kithara Software GmbH

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Mar 11, 2024
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Mar 11, 2024
@6543 6543 added the type/refactoring Existing code has been cleaned up. There should be no new functionality. label Mar 11, 2024
@6543 6543 mentioned this pull request Mar 11, 2024
11 tasks
@6543 6543 requested a review from a team March 12, 2024 17:00
@github-actions github-actions bot added the modifies/go Pull requests that update Go code label Mar 14, 2024
@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Mar 14, 2024
@6543 6543 requested a review from lunny March 15, 2024 22:33
func PerformSearch(ctx context.Context, repoIDs []int64, language, keyword string, page, pageSize int, isFuzzy bool) (int, []*Result, []*internal.SearchResultLanguages, error) {
if len(keyword) == 0 {
func PerformSearch(ctx context.Context, opts *SearchOptions) (int, []*Result, []*SearchResultLanguages, error) {
if opts == nil || len(opts.Keyword) == 0 {
Copy link
Contributor

@wxiaoguang wxiaoguang Mar 16, 2024

Choose a reason for hiding this comment

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

I do not think opts == nil makes sense, how could it be nil? If "nil" opts means a bug, it should be handled in development stage.

Copy link
Member Author

Choose a reason for hiding this comment

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

It should not be nil ... but better not panic

Copy link
Contributor

@wxiaoguang wxiaoguang Mar 16, 2024

Choose a reason for hiding this comment

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

It should not be nil ... but better not panic

If it shouldn't be nil, why not report the errors in development stage? Just by a panic.

I really dislike hiding errors. It makes it more difficult to debug some bugs.

Copy link
Member Author

@6543 6543 Mar 16, 2024

Choose a reason for hiding this comment

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

NO we should not panic if we can arange it. To hope for stacktraces to get reported as "linting" methode is wrong !!!

But what we can do is create a proper error to check against

Copy link
Contributor

Choose a reason for hiding this comment

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

NO, why it would panic if there is no bug in code?

Golang library itself panics a lot if something is totally wrong.

Copy link
Member

Choose a reason for hiding this comment

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

I also don't think we should check opts == nil here. It should not be nil if our code is right. Otherwise, you need to check another thousand places.

Copy link
Member Author

@6543 6543 Mar 16, 2024

Choose a reason for hiding this comment

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

Let me check (again) what comsumers this func has ... and also introduce a proper error instead of a ignore on keyword==""

Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm ... I only mean opts == nil check doesn't make sense.

if keyword == "" looks good to me, I do not think it's worth to introduce to many "errors".

Golang has a very bad error system, TBH I have been tired of writing a lot of if err != nil { ctx.ServerError }

Copy link
Member Author

Choose a reason for hiding this comment

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

Do you wana create a pull?

Copy link
Contributor

Choose a reason for hiding this comment

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

Since it has been merged, I think it could be left there as-is, no good no harm.

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Mar 16, 2024
@6543 6543 enabled auto-merge (squash) March 16, 2024 10:05
@6543 6543 merged commit 1262ff6 into go-gitea:main Mar 16, 2024
26 checks passed
@GiteaBot GiteaBot added this to the 1.23.0 milestone Mar 16, 2024
@6543 6543 deleted the refactor/codeSearchUseOptionStruct branch March 16, 2024 11:10
zjjhot added a commit to zjjhot/gitea that referenced this pull request Mar 16, 2024
* giteaofficial/main: (28 commits)
  Forbid jQuery `.prop` and fix related issues (go-gitea#29832)
  Fix wrong test for TestPullView_CodeOwner (go-gitea#29838)
  Forbid HTML injection using jQuery (go-gitea#29843)
  Meilisearch double quote on "match" query (go-gitea#29740)
  Forbid variables containing jQuery collections not having the `$` prefix (go-gitea#29839)
  Remove AddParamIfExist(AddParam) (go-gitea#29841)
  Refactor markdown attention render (go-gitea#29833)
  Refactor code_indexer to use an SearchOptions struct for PerformSearch (go-gitea#29724)
  Refactor AddParam to AddParamIfExist (go-gitea#29834)
  Forbid jQuery AJAX (go-gitea#29818)
  Remove jQuery AJAX from the notifications (go-gitea#29817)
  Light theme color enhancements (go-gitea#29830)
  Better highlighting of archved labels (go-gitea#29749)
  Remove the `time-since` class (go-gitea#29826)
  Remove jQuery AJAX from the project page (go-gitea#29814)
  Upgrade `htmx` to v1.9.11 (go-gitea#29821)
  Dark theme color enhancements (go-gitea#29822)
  Remove jQuery AJAX from the comment edit box (go-gitea#29812)
  Tweak labeler (go-gitea#29809)
  Fix `for` attribute not pointing to the ID of the color picker (go-gitea#29813)
  ...

# Conflicts:
#	routers/web/user/home.go
silverwind pushed a commit to silverwind/gitea that referenced this pull request Mar 17, 2024
go-gitea#29724)

similar to how it's already done for the issue_indexer


---
*Sponsored by Kithara Software GmbH*
@lunny lunny modified the milestones: 1.23.0, 1.22.0 Mar 22, 2024
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Jun 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/go Pull requests that update Go code size/L Denotes a PR that changes 100-499 lines, ignoring generated files. type/refactoring Existing code has been cleaned up. There should be no new functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants