Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

338 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

github-issues.vim

Github issue integration in Vim. It's kind of awesome.

Looking for a new owner

If you're interested in taking over this project and giving it the love it deserves, send me an email or file a bug.

Omnicomplete

If you use Fugitive or edit gitcommit files in Vim, github-issues will automatically populate the omnicomplete menu with issues on Github. This is useful when you want to reference commits, close issues, etc., through Github's commit message parsing.

Here's how it works with Neocomplete:

If you use pure omnicomplete, use C-x C-o to pull up the menu.

No need to run commands, no need to configure. It just works. ;) (And if it doesn't, it should, so submit an issue) Not bad, huh?

Lookup menu

To show Github issues for the current repository:

:Gissues

Press enter to view more details.

Handling issues

You can open and close issues using co and cc in the issue view.

They're also totally editable buffers, and saving the file will sync with Github's servers. You can use this to write comments, too:

You can also open the current issue in your browser using cb.

Creating issues

You can even use :Giadd to create a blank issue. Saving the buffer will generate a new issue and update the buffer with an issue number and the ability to add comments.

How awesome is that!?

Milestones

New feature: Use :Gmiles to open a menu of milestones. Press return on one to select it and filter :Gissues by that milestone from then on.

Custom Issue Search

You have the ability to define your own issue search using Githubs search API. This allows you to view issues and pull requests across repos.

To use this feature, you can add a line like the following, with the search parameters that you wish to use.

letg:gh_issues_query="state:open user:github label:\"feature\" sort:created-asc"

You can than get this list of issues using the command :Gisearch

Fugitive integration

Github will show any commits that reference the issue. That's what the omnicomplete helps with. But to make things even more awesome, github-issues.vim integrates with Fugitive.vim to make commit hashes clickable with the return key.

Requirements and Installation

Vim with Python 2.7, Python 2.7 installed and working with Vim.

I recommend using Pathogen and Git cloning into ~/.vim/bundle. You can also just download the plugin and paste it into your plugin directory.

Then read below about adding an access token.

Configuration

The omnicomplete and lookup features will work out of the box for public repos.

If you have private repos, or would like the ability to comment, open, close, and add issues, you will need to set an access token. Don't worry, this is super easy.

g:github_access_token

Grab an access token from here, then set this variable, preferably in a local vim file not included in any public repositories:

let g:github_access_token = "9jb19c1189f083d7013i24367lol"

Remember, you should treat your access token like a password!

Other options include:

g:github_issues_no_omni

When this is set to any value, github-issues will not set Neocomplete and Omnicomplete hooks.

g:github_upstream_issues

When this is set to 1, github-issues will use upstream issues (if repo is fork). This will require extra requests for the Github API, however.

g:github_api_url = "https://api.github.com/"

If you use Github Enterprise, where the Github server is hosted somewhere other than Github.com, set this parameter to your API path. This is specifically for Github Enterprise and will not work for Bitbucket, Gitlab, etc.

g:github_same_window = 1

When this is set to 1, github-issues will use the current window instead of splitting the screen via the :new command.

g:gissues_lazy_load = 0

When this is set to 1, omnicomplete will not be populated until it is triggered. This eliminates potential lag when opening gitcommit files.

g:gissues_async_omni = 0

Experimental: When set to 1, omnicomplete will be populated asynchronously, on another thread. This removes almost all lag from the UI when using Gissues, and can be combined with g:gissues_lazy_load to reduce network traffic while still receiving the same speed boost. However, this uses threads and needs a lot more testing to ensure it is stable.

Contributing

Pull requests, feature requests, and issues are always welcome!

Shameless plug

I hack around with Vim plugins, so follow me if you're into that kind of stuff (or just want to make my day) ;)

About

Github issue lookup in Vim

Resources

Stars

406 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages