{"id":16836844,"url":"https://github.com/mpl/gofinder","last_synced_at":"2025-04-11T05:11:06.173Z","repository":{"id":57514945,"uuid":"1561409","full_name":"mpl/gofinder","owner":"mpl","description":"The gofinder program is an acme user interface to search through Go projects. It might go unmaintained if https://github.com/fhs/acme-lsp becomes good enough for me.","archived":false,"fork":false,"pushed_at":"2019-03-03T23:34:18.000Z","size":55,"stargazers_count":22,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-25T03:12:49.714Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpl.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-04-03T00:37:22.000Z","updated_at":"2023-04-30T03:28:11.000Z","dependencies_parsed_at":"2022-09-26T18:00:55.442Z","dependency_job_id":null,"html_url":"https://github.com/mpl/gofinder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpl%2Fgofinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpl%2Fgofinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpl%2Fgofinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpl%2Fgofinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpl","download_url":"https://codeload.github.com/mpl/gofinder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345266,"owners_count":21088244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T12:15:07.671Z","updated_at":"2025-04-11T05:11:06.155Z","avatar_url":"https://github.com/mpl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"gofinder\n========\n\nThe gofinder program is an acme user interface to search through Go projects.\n\nIt uses 2-1 chording (see https://swtch.com/plan9port/man/man1/acme.html).\nIt uses a JSON configuration file to define project(s) to search on; see\nprojects-example.json for a working configuration example.\n\n\nIt displays, in the following order: The name of the project, to perform a\nglobal search. The Go Guru (golang.org/x/tools/cmd/guru) modes, to perform a\nguru search. The project's locations, to perform a local search. For example,\nwith the provided projects-example.json, the UI will look like:\n\n\tSearch in: \n\t-----------------------------------\n\tcamlistore:\n\t\tcallees\tcallers\tcallstack\tdefinition\tdescribe\tfreevars\timplements\tpeers\tpointsto\treferrers\twhat\twhicherrs\n\t\t/home/mpl/src/camlistore.org\t/home/mpl/src/camlistore.org/vendor\t/home/mpl/src/go4.org\t/home/mpl/src/github.com/mpl\n\t-----------------------------------\n\n\nA brief recap on acme mouse chording: first place the text cursor on the word\nyou want the search to apply to, with a left click at any position on the word.\nThen send that word as an argument to one of the guru commands with 2-1\nchording. That means, press and hold the middle click on the command (for example, the\n\"definition\" word), and while still holding it, press the left click.\n\n\nThe output of commands is printed to the +Errors window.\n\n\nThe configuration file is mapped to a project type, which is defined as follows:\n\n\ttype Project struct {\n\t\t// Name is the one word name describing the project, that will appear at\n\t\t// the top of the UI. One word, because chording on the name starts a\n\t\t// global search in the project. Global search means a find on all the\n\t\t// files ending with the extensions defined in Exts, looking in the\n\t\t// locations defined in Locations, excluding all the patterns defined in\n\t\t// Excluded. The results are piped to a grep for the argument that is sent\n\t\t// with the chord.\n\t\tName      string\n\t\t// Locations defines all the locations relevant to the project, and as\n\t\t// such, they are displayed on the UI. A global search runs find through\n\t\t// all of them. A chording on one of the locations will perform a local\n\t\t// search, i.e. in the same way as a global search, except find will only\n\t\t// run through that one location.\n\t\tLocations []string\n\t\t// Exts defines the file extension patterns (regexp), that find will\n\t\t// take into account. It defaults to []string{\"\\.go\"} otherwise.\n\t\tExts      []string\n\t\t// Excluded defines the patterns (regexp), that find will take into\n\t\t// account to exclude from the search results.\n\t\tExcluded  []string\n\t\t// GuruScope is the scope that guru will use for the modes that need one.\n\t\tGuruScope []string\n\t}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpl%2Fgofinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpl%2Fgofinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpl%2Fgofinder/lists"}