Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fallenmax/naive-definitions
Naive 'Go to Definitions'
https://github.com/fallenmax/naive-definitions
Last synced: 2 months ago
JSON representation
Naive 'Go to Definitions'
- Host: GitHub
- URL: https://github.com/fallenmax/naive-definitions
- Owner: FallenMax
- License: mit
- Created: 2017-12-17T13:35:26.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-14T14:56:56.000Z (6 months ago)
- Last Synced: 2024-08-14T16:24:20.922Z (6 months ago)
- Language: TypeScript
- Homepage: https://marketplace.visualstudio.com/items?itemName=FallenMax.naive-definitions
- Size: 226 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Naive Definitions
_Inspired by [Fuzzy Definitions](https://github.com/jrieken/fuzzy-definitions) and [Find All References](https://github.com/gayanhewa/vscode-find-all-references)_
A Visual Studio Code extension that provides "Go to Definition" and "Find All References" functionality for various programming languages, using a fast textual search.
This extension is helpful when navigating large codebases, especially for weakly-typed languages or languages without good Language Server Protocol (LSP) support, where the built-in IntelliSense engine may fail to provide reliable definitions.
## Features
- Supports "Go to Definition" and "Find All References" for multiple programming languages
- Configurable language-specific search patterns and file globs
- Respects `.gitignore` and other ignore files
- Blazing fast search using [ripgrep](https://github.com/BurntSushi/ripgrep)## Requirements
- Install [ripgrep](https://github.com/BurntSushi/ripgrep) and make it available in your system's `$PATH` (run `rg` in the command line to verify)
## Extension Settings
This extension contributes the following settings:
- `naiveDefinitions.languageConfigs`: An array of language-specific configurations, each with the following properties:
- `languages`: An array of programming language IDs to enable the extension for.
- `definitionPatterns`: An array of regular expression patterns to use when searching for definitions. Use `%s` to represent the word at the cursor position. **Note: These patterns may require escaping special characters depending on your programming language.**
- `referencePatterns`: An array of regular expression patterns to use when searching for references. Use `%s` to represent the word at the cursor position. **Note: These patterns may require escaping special characters depending on your programming language.**
- `fileGlobs`: An array of file glob patterns to search within.Example configuration:
```json
{
"naiveDefinitions.languageConfigs": [
{
"languages": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue"
],
"definitionPatterns": [
"(var|let|const)[^=]+\\b%s\\b",
"\\b%s\\b\\s=[^=]+"
],
"referencePatterns": ["\\b%s\\b"],
"fileGlobs": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.vue"]
},
{
"languages": ["python"],
"definitionPatterns": ["def\\s+%s\\s\\", "class\\s+%s\\s*\\("],
"referencePatterns": ["\\b%s\\b"],
"fileGlobs": ["**/*.py"]
}
]
}
```## Release Notes
### 0.1.0 - Added support for configuring language-specific search patterns and file globs
- The extension is now activated on-demand when the user invokes the "Go to Definition" or "Find All References" commands, rather than on startup
- Improved performance by only registering providers for the configured languages### 0.0.7 - Registered as a "Find All References" provider
### 0.0.6 - Added Windows support
### 0.0.5 - Added support for searching `.vue` files for definitions
### 0.0.2 - Added support for searching `.ts` and `.tsx` files for definitions
### 0.0.1 - Initial release