Hound search, clone, launch.
Provides a Hound search client that on selection:
- checks for matching local repos in a configurable set of root project directories
- prompts to clone repos that do not exist locally
- launches search results in the program of your choice
- Hound: Search: Launch the searcher
- Hound: Refresh Local Projects: Rescan the set of local repo roots
Search for 'Hound Search' in the Visual Studio Code's extension manager
-
Local installation of git
-
Hound config with keys in the
"repos"
following anamespace/repo
structuree.g.
{ ... "repos": { "szinsli/vscode-hound": { "url": "[email protected]:szinsli/vscode-hound.git" }, "otherNamespace/otherRepo": { "url": ... } } }
This extension contributes the following settings:
-
hound.url
: API endpoint for your hound installation e.g.http://localhost:6080
-
hound.repoPattern
: pattern to use to create a repo URL for a given namespace and repo name.-
namespace
: the owner namespace of the repo -
repo
: the name of the repo itselfe.g.
[email protected]:${namespace}/${repo}.git
-
-
hound.localRepoRoots
: array of directories for this extension to search for repos non-recursivelye.g.
["~/projects"]
-
hound.launchers
: array of launcher configs containing:-
launch
: command to launch when a search result is selected.Takes the following substitutions (using the
${substitution}
syntax):folder
: the local repo directory pathfileName
: the relative filepath of the match within the repolineNumber
: line number of the match
-
matchers
: an array of rule objects. Any single match will enable the launcher.Can contain one of the following:
containsFile
: the launcher will match if the repo contains a file with this name (e.g.{"containsFile": "index.html"}
)nameMatchesRegex
: the launcher will match if the supplied regex matches the repo name (e.g.{"nameMatchesReges": "some.*thing"}
)hasExtension
: the launcher will match if the selected file has the supplied extension (e.g.{"hasExtension": "java"}
)
-
example:
"hound.launchers": [ { "launch": "code ${folder} -g '${folder}/${fileName}:${lineNumber}'", "matchers": [ { "containsFile": "package.json": }, { "hasExtension": "ts" } ] }, { ... } ]
-
Initial release