{"id":21715143,"url":"https://github.com/clark800/def","last_synced_at":"2025-03-20T19:26:20.952Z","repository":{"id":72191868,"uuid":"419180403","full_name":"clark800/def","owner":"clark800","description":"function definition search script (ctags alternative)","archived":false,"fork":false,"pushed_at":"2023-11-25T15:18:46.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T17:41:23.261Z","etag":null,"topics":["ctags","shell-script","vim"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clark800.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-20T04:06:37.000Z","updated_at":"2021-10-22T12:54:07.000Z","dependencies_parsed_at":"2023-11-25T16:36:07.491Z","dependency_job_id":null,"html_url":"https://github.com/clark800/def","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/clark800%2Fdef","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fdef/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fdef/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fdef/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clark800","download_url":"https://codeload.github.com/clark800/def/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244676454,"owners_count":20491828,"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":["ctags","shell-script","vim"],"created_at":"2024-11-26T00:41:22.585Z","updated_at":"2025-03-20T19:26:20.933Z","avatar_url":"https://github.com/clark800.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# def\n\n`def` is a simple POSIX shell script that recursively searches source files in\nthe current directory for the definition of the given function name and prints\nout all matching lines.\n\nIt can also be used to implement \"go to definition\" functionality for editors.\nIt does not require any database files like ctags and cscope.\n\n#### Features\n\n* If the current directory is a `git` directory, then any gitignored files\n  and directories will be skipped.\n* The following file extensions are recognized:\n  c, h, py, js, ts, lua, awk, sh, rs, go.\n\n#### Usage\n\n`def [\u003cname\u003e] [\u003cextension\u003e]`\n\n`def` will only search files with the specified file extension, which defaults\nto `c`. With no arguments, `def` will list all function definitions.\n\n#### Vim Integration\n\nCopying `def.vim` into your vimrc will add a colon command `:D \u003cname\u003e` to search\nfor definitions in files with the same extension as the current file\n(unless the current file is a `.h` file in which case it will search `.c` files)\nand jump to the first definition found. Also, the F12 key will run this command\nwith the current name under the cursor. Additionally, the `:Dh \u003cname\u003e` command\nand Shift+F12 work similarly, but always search `.h` files. If multiple\ndefinitions are found, you can use `:lnext` to step through the results.\n\n#### Caveats\n\n* For C files, function prototypes will be listed in addition to definitions.\n  This shouldn't be an issue if prototypes are in `.h` files since these are not\n  normally searched. If there are prototypes in `.c` files, they can be indented\n  by a space to make them not appear.\n* Function definitions inside block comments will be listed if the comment\n  starts on a prior line.\n* Filenames and paths containing double quotes are not supported.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclark800%2Fdef","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclark800%2Fdef","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclark800%2Fdef/lists"}