Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hkupty/pointer.nvim
Quickly share the reference to a point in your file
https://github.com/hkupty/pointer.nvim
lua neovim neovim-plugin
Last synced: 3 months ago
JSON representation
Quickly share the reference to a point in your file
- Host: GitHub
- URL: https://github.com/hkupty/pointer.nvim
- Owner: hkupty
- License: mit
- Created: 2018-07-09T12:01:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-08-16T17:21:45.000Z (over 1 year ago)
- Last Synced: 2024-05-22T17:34:50.534Z (6 months ago)
- Topics: lua, neovim, neovim-plugin
- Language: Lua
- Size: 22.5 KB
- Stars: 19
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pointer.nvim
Share file references instantly
## Why
Pointer allows rapid communication within the team around a codebase by allowing
team members to share points on the codepath (file + linenumber) information.## How it works
Pointer looks up your project directory structure and tries its best to
build an url so you can get the current line as a shareable url:```python
...
10 def myfn(arg): # running here
11 pass
...
```Will yield `https://github.com/owner/project/master/blob/path/to/file.py#L10`
Pointer tries to match data from its configuration, the file and its path:
`/home/user/code/owner/project/path/to/file`It will use cwd to determine project root, so: `tcd /home/user/code/owner/project`
By convention, pointer.nvim assumes that projects follow the `owener/project` directory structure.
You can override that behavior with custom functions.## How to set up
Create a `pointer.lua` file for configuring your pointer in your config dir
```lua
local pointer = require("pointer")-- This configures github for all projects
pointer.config{
url = pointer.url.github,
}-- I'll explain mapping later. leave this to bind to default keybindings
pointer.map{}
```and in your `init.vim`:
```vim
luafile $HOME/.config/nvim/pointer.lua
```## A slightly more complex configuration
```lua
local pointer = require("pointer")-- This configures github for all projects
pointer.config{
url = pointer.url.github,
myteam = {
url = pointer.url.opengrok("https://opengrok.myteam.com/xref/")
},
mycustomproj = {
url = pointer.urls.gitlab
}
}-- I'll explain mapping later. leave this to bind to default keybindings
pointer.map{}
```it will try to match first based on the project, than on the owner, then it'll use the general rule:
`/home/user/code/myteam/mycustomproj/... -> gitlab`
`/home/user/code/myteam/second/... -> opengrok`
`/home/user/code/vigemus/pointer.nvim/... -> github`## Mappings
If you use default mappings, it'll map:
```
yu -> As url
ypp -> As a relative path from project owner (project/path/to/file.py)
yrp -> As a relative path from your project (path/to/file.py)
yRp -> As an absolute path (/home/user/code/owner/path/to/project.py)
```## TODO
- [ ] Write tests
- [ ] Collect git branch data
- [ ] Allow custom collectors
- [ ] Better user customization
- [ ] Allow references to Pull-Request/Merge-Request