Xcode plugin to let you jump to GitHub History, Blame, PRs, Issues, Notifications of any GitHub repo with one shortcut.

Overview

Reveal-In-GitHub

Xcode plugin to let you jump to GitHub History, Blame, PRs, Issues, Notifications of current repo in one second.

plugin

My company work on GitHub. I open the GitHub a lot. Sometimes, I am editing on Xcode and do not understand some code, so I go to GitHub to blame them. Sometimes, find the latest commits about a file to help me figure out how the code evolves. So I wonder is there a tool to help me quick open GitHub from Xcode. So I write this plugin. When you editing some source file on Xcode, it's easy to know which GitHub repo you are working on and know which file you are editing. So it makes sense to quickly jump to the file on GitHub, quickly jump to blame the current editing line on GitHub, quickly jump to the issues or prs of the current repo you are working on Xcode.

Menu Items

2015-11-01 12 56 35

It has six menu items:

Menu Title Shortcut GitHub URL Pattern (When I'm editing LZAlbumManager.m Line 40)
Setting ⌃⇧⌘S
Repo ⌃⇧⌘R https://github.com/lzwjava/LZAlbum
Issues ⌃⇧⌘I https://github.com/lzwjava/LZAlbum/issues
PRs ⌃⇧⌘P https://github.com/lzwjava/LZAlbum/pulls
Quick File ⌃⇧⌘Q https://github.com/lzwjava/LZAlbum/blob/fd7224/LZAlbum/manager/LZAlbumManager.m#L40
List History ⌃⇧⌘L https://github.com/lzwjava/LZAlbum/commits/fd7224/LZAlbum/manager/LZAlbumManager.m
Blame ⌃⇧⌘B https://github.com/lzwjava/LZAlbum/blame/fd7224/LZAlbum/manager/LZAlbumManager.m#L40
Notifications ⌃⇧⌘N https://github.com/leancloud/LZAlbum/notifications?all=1

The shortcuts are carefully designed. They will not confict to Xcode default shortcuts. The shortcut pattern is ⌃⇧⌘ (Ctrl+Shift+Command), plus First Character of the menu title.

Customize

Sometimes, you may want to quickly jump to Wiki. Here is the way, open the setting:

2015-11-01 12 56 35

For example,

Quick file, the pattern and the actual url:

           {git_remote_url}       /blob/{commit}/          {file_path}         #{selection}    
https://github.com/lzwjava/LZAlbum/blob/fd7224/LZAlbum/manager/LZAlbumManager.m#L40-L43

The {commit} is the latest commit hash of current branch. It's better then use branch. Because branch's HEAD may be changed. So the code in #L40-L43 may also be changed.

So if you want to add a shortcut to current repo's wiki, just add a menu item and set the pattern to {git_remote_url}/wiki.

In settings, Clear Default Repos say if you have multiple git remotes, when first time to trigger, it will ask you to choose one of them:

Then the plugin remembers which you choose. So when you trigger the menu again, will open that remote repo as the default. The button Clear Default Repos will clear this setting, will ask you to select again.

Install

Recomend install with Alcatraz,

qq20151101-1 2x

Or

  1. Clone this repo.
  2. Open Reveal-In-GitHub.xcodeproj, and build it.
  3. Reveal-In-GitHub.xcplugin should locate at ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
  4. Restart Xcode
  5. Open any GitHub Project and press ⌃⇧⌘B (Ctrl+Shift+Command+B) to blame the code.

安装

推荐使用 Alcatraz,可参考巧神的一遍博客。安装好后,按照上图搜索 Reveal In GitHub,点击 Install 即可。

如果不使用这个工具的话,那么也只需三步:

  • 克隆该项目到本地。
  • 打开 xcodeproj,点击 Build 构建。这会在目录~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 生成 Reveal-In-GitHub.xcplugin 文件。
  • 重启 Xcode,打开任意一个放在 GitHub 上的项目。按下 Ctrl+Shift+Command+B 即可。

Credit

When at the course of developing it, find another plugin ShowInGitHub do something similar. I learn some techique from it. Thanks for that.

License

MIT

You might also like...
Mark - Xcode extension for generating MARK comments.
Mark - Xcode extension for generating MARK comments.

Mark Xcode extension for automatic generation of MARK comments. Why? If you would like to organize your code with MARK comments, this will save you so

DocumenterXcode - Attempt to give a new life for VVDocumenter-Xcode as source editor extension.
DocumenterXcode - Attempt to give a new life for VVDocumenter-Xcode as source editor extension.

DocumenterXcode Xcode source editor extension which helps you write documentation comment easier, for both Objective-C and Swift. This project is an a

Snowonder - 🔮 Magical import declarations formatter for Xcode
Snowonder - 🔮 Magical import declarations formatter for Xcode

Snowonder is Xcode Extension that adds some convenient formatting operations for Import Declarations. This extension is created with latest stable Swi

XVim2 - Vim key-bindings for Xcode 9

XVim2 XVim2 is a Vim plugin for Xcode intending to offer a compelling Vim experience without the need to give up any Xcode features. Xcode 9 or above,

Comment-Spell-Checker - Xcode extension for spell checking and auto-correcting code comments.
Comment-Spell-Checker - Xcode extension for spell checking and auto-correcting code comments.

Comment Spell Checker An Xcode Source Editor extension that runs spell check and auto correct on your code comments. Features Supports mutliple commen

Multiliner - An Xcode source extension to expand lengthy lines
Multiliner - An Xcode source extension to expand lengthy lines

Multiliner An Xcode source extension to expand lengthy lines. Super lightweight, 1 file. It expands long lines. That's it! Works with: Initializers Fu

Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more.
Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more.

IQKeyboardManager While developing iOS apps, we often run into issues where the iPhone keyboard slides up and covers the UITextField/UITextView. IQKey

Xcode-streamdeck-plugin - A Stream Deck plugin for Xcode
Xcode-streamdeck-plugin - A Stream Deck plugin for Xcode

Stream Deck Xcode Plugin This repository contains a Stream Deck plugin to add so

Managing Pull Requests and Issues For GitHub & GitHub Enterprise

Trailer For maintained binaries and/or more info: Latest macOS version Latest iOS version Trailer CLI for Mac, Linux and Windows Trailer for Android N

A Meetings app where the user is presented with the number of meetings created , join any them , edit the varied details also keeping the track of the history of the meetings.
A Meetings app where the user is presented with the number of meetings created , join any them , edit the varied details also keeping the track of the history of the meetings.

Meetings A Meetings app where the user is presented with the number of meetings created , join any them , edit the varied details also keeping the tra

TwilioChat_iOS - Twilio iOS SDK Implementaion Chat one-one Chat One-Many (Group)

TwilioChat_iOS - Twilio iOS SDK Implementaion Chat one-one Chat One-Many (Group) - Add Participant - Remove Participant Send Attachment Image Android - iOS Tested iOS - iOS Tested iOS - Android Tested React to Message, Delete a Message Read, Delivered, Sent Delete a Conversation Unread Messages Filter

iOS App that allows a pilot to check drone photo collection after a mapping mission for any issues
iOS App that allows a pilot to check drone photo collection after a mapping mission for any issues

DronePhotoChecker iOS App that allows a pilot to check drone photo collection after a mapping mission for any issues. Features: Connects to DJI drone

An Xcode 7 plugin to build and run an app across multiple iOS devices with one click.
An Xcode 7 plugin to build and run an app across multiple iOS devices with one click.

RunEverywhere Xcode Plugin Overview An Xcode 7 plugin to build and run an app across multiple iOS devices with one click. Gone are the days of manuall

Gently notifies you about 'important' GitHub notifications
Gently notifies you about 'important' GitHub notifications

OctoBlast Gently notifies you about important GitHub notifications Setup Personal access token Head to preferences, and pop in your a new GitHub perso

Helps you easily handle Core Data's Persistent History Tracking

Persistent History Tracking Kit Helps you easily handle Core Data's Persistent History Tracking 中文版说明 What's This? Use persistent history tracking to

A UIKit based geotagging app that let's you save places you have visited with images.

My Locations Getting Started Using Core Location A CLLocationManager() performs the location updating It sends its updates to its delegate, so make su

A beautiful app that will let you know how much sun you have today.
A beautiful app that will let you know how much sun you have today.

Daylight A beautiful app that will let you know how much sun you have today. Running the project Open Project.xcodeproj and run What's interesting abo

Cordova-plugin-saveimage - This plugin helps you save images

cordova-plugin-saveimage This plugin helps you save images on iOS/Android Instal

Comments
  • Installation through Alcatraz fails

    Installation through Alcatraz fails

    When installing through Alcatraz the installation starts then stops. The console reports:

    11/24/15 7:57:23.606 AM Xcode[10854]: Updating Repo: /**************/Library/Application Support/Alcatraz/Plug-ins/Reveal-In-Github 11/24/15 7:57:24.691 AM Xcode[10854]: Wasn't able to find: Reveal-In-Github.xcodeproj in /**************/Library/Application Support/Alcatraz/Plug-ins/Reveal-In-Github

    This is because the actual project name is 'Reveal-In-GitHub.xcodeproj' (note the capital H). I was able to rename the project to complete installation.

    opened by shawnmorrison 2
  • Description typo

    Description typo

    Hi, nice plugin 😊

    There is a typo in the description, shorcut instead for shortcut.

    Also, it is spelled GitHub, not Github.

    Keepup the good work :+1:

    opened by mokagio 2
  • Repos with more than three remotes are truncated

    Repos with more than three remotes are truncated

    If you have more than three remotes attached to your repo, Reveal-In-Github will only display the first three when it asks you to choose your repo.

    screenshot 2015-12-03 11 35 31

    The dialogue should allow for any number of remotes.

    opened by noahemmet 2
Owner
lzwjava
lzwjava
Xcode plugin which help you write code faster.

MLAutoReplace Xcode plugin, Re-Intent, make you write code more quickly. Use a portion code of VVDocumenter-Xcode. ##Overview You can use shortcut key

molon 233 Sep 9, 2022
Nef-plugin - 🔌 an Xcode extension to use nef features easily

This project provides an extension for Xcode to integrate some nef features directly in the IDE. Using the core of nef, you can export snippets from y

Bow 182 Sep 6, 2022
Plugin for Xcode to integrate the Reveal App to your project automatic.

Reveal-Plugin-for-Xcode Plugin for Xcode to integrate the Reveal App to your project automatic(Without any modifications to your project). Please note

Eric 229 Jun 29, 2022
Xgist - Xcode extension to send code to GitHub's Gist

Xgist Xgist is a Xcode extension to send code to GitHub's Gist. The extension will send your code selection to Gist and automatically copy the Gist UR

Fernando Bunn 76 Jul 2, 2022
XTextHandler - Xcode Source Editor Extension Tools (Xcode 8 Plugins)

Download Let's Swift! xTextHandler has been rewritten in Swift. The Objective-C version can be found in: https://github.com/cyanzhong/xTextHandler-obj

Ying Zhong (Inactive) 1.5k Sep 7, 2022
XShared - Xcode extension that allows you copying the code with special formatting quotes for social (Slack, Telegram)

This extension is for those who like to show code to the public ?? Xcode extension which allows you copying the code with special formatting quotes fo

Nikita Ermolenko 75 Jun 18, 2022
CleanClosureXcode - An Xcode Source Editor extension to clean the closure syntax.

Clean Closure - Xcode Source Editor Extension Clean Closure is a simple Xcode Source Editor Extension for Xcode 8. It parses each line of a file to si

Patrick Balestra 188 Jun 18, 2022
SwiftInitializerGenerator - Xcode Source Code Extension to Generate Swift Initializers

Swift Initializer Generator This Xcode Source Code Extension will generate a Swift initializer based on the lines you've selected. Handy if you made a

Bouke Haarsma 718 Aug 21, 2022
XcodeEquatableGenerator - Xcode 8 Source Code Extension will generate conformance to Swift Equatable protocol based on type and fields selection.

Depricated! There is not need for it at the moment as Swift compiler can do that for us ?? Swift Equatable Generator Xcode 8 Source Code Extension wil

null 191 Feb 1, 2022
Import - Xcode extension for adding imports from anywhere in the code ☝️

Import ☝️ Xcode extension for adding imports from anywhere in the code. Now available on App Store Why? Because sometimes you are on 300th line of cod

Marko Hlebar 838 Sep 9, 2022