Coder Social home page Coder Social logo

browse-at-remote's Introduction

browse-at-remote.el

This package is easiest way to open particular link on github/gitlab/bitbucket/stash/git.savannah.gnu.org/sourcehut from Emacs. It supports various kind of emacs buffer, like:

  • file buffer
  • dired buffer
  • magit-mode buffers representing code
  • vc-annotate mode (use get there by pressing C-x v g by default)

Installation:

Add browse-at-remote to your Cask file::

(depends-on "browse-at-remote")

Manual

Simply add this package to your emacs path, and add to .emacs,:

(require 'browse-at-remote)

Active keybindings for browse-at-remote function::

(global-set-key (kbd "C-c g g") 'browse-at-remote)

GNU Guix

Run guix package -i emacs-browse-at-remote then load browse-at-remote from your Emacs init.

Customization

Remote types

By default browse-at-remote knows how to work with popular remote types (github/gitlab..). Knowledge how to work with certain remote-type comes from mapping browse-at-remote-remote-type-domains. It defines that github.com should be treat in github manner, bitbucket.org in bitbucket manner and so on. In your development you may have some specific git-url, and browse-at-remote will before confuse which remote-type map to your domain.

Two solution available:

  1. In that case you can to customize that. (M-x customize ... browse-at-remote-remote-type-domains). For now our package supports next remote-types:

    • bitbucket.com
    • gitlab.com
    • github.com
    • Stash
    • git.savannah.gnu.org
    • gist.github.com
    • Phabricator
    • git.sr.ht
    • pagure.io
    • vs-ssh.visualstudio.com
  2. Set specific remote-type directly in git repo. For example, if your repository is hosted on GitHub enterprise, you should add following setting to its config:

    git config --add browseAtRemote.type "github"
    

    or for private Stash repository use command:

    git config --add browseAtRemote.type "stash"
    

Excluding line number if no region is selected

By default browse-at-remote add line number when region is not selected in file attached buffer. If you don't like that and what to see no line information URL, it's possible to disable that by adding::

(setq browse-at-remote-add-line-number-if-no-region-selected nil)

Or setting via UI with M-x customize.

Adding new remote type

You can your own remote if you need - PRs are welcome! Please see good examples here: gnu-savannah-remote, or stash-remote.

Usage:

  1. Call function from emacs buffer:

    M-x browse-at-remote
    

    or:

    M-x bar-browse
    
    http://i.imgur.com/rmAky8e.png

    or just call C-c g g if you've already added binding before. You can use this command in dired buffers too.

  2. Target page at github/bitbucket will be opened using your default browser:

    http://i.imgur.com/wBW9Gov.pngalt:screenshotofpageatgithub

    or same here is folder view at bitbucket:

    http://i.imgur.com/XuzLhcR.pngalt:screenshotpagetreeatbibucket
  3. Opening github commit's page at magit-commit-mode, magit-log-mode:

    http://i.imgur.com/NzlIHYr.pngalt:screenshotof*magit-log-mode*
  4. Open last commit which added target line:

    http://i.imgur.com/lpmOAz2.pngalt:screenof*vc-annotate-mode*
    • Press C-x v g to call standard vc-annotate
    • Call browse-at-remote on target line

Contributors:

Changelog:

0.14.0

New remote type added Pagure by @FrostyX. New configuration option browse-at-remote-add-line-number-if-no-region-selected allowing add or not line number when target page open and region initially is not selected.

0.13.0

New remote type added Sourcehut by @microamp.

0.12.0

New remote type added Phabricator by @kuba-orlik.

0.11.0

New remote type added gist.github.com by @CyberShadow.

0.10.0

New remote type added git.savannah.gnu.org by @wigust.

0.9.0

Minor fixes, added Stash (bitbucket support) by @yauhen-l.

0.8.0

Drop clojure-style function namings. Add abbrev methods like bar-browse and bar-to-clipoboard (where bar is browse-at-remote abbrev.)

0.7.0

Major refactorings by @ieure. Main function renamed to browse-at-remote/browse. (renamed in 0.8.0 to bar-browse)

0.6.0

Added support of Gitlab by @env0der. Thanks!

0.5.0

Added support of Github Enterprice. Special thanks for @env0der for this feature.

0.4.0

Function browse-at-remote/to-clipboard were added (renamed in 0.8.0 to bar-to-clibpoard)

TODO:

  • Add mercurial support

browse-at-remote's People

Contributors

rmuslimov avatar ieure avatar legendary-mich avatar wilfred avatar syohex avatar yauhen-l avatar jackrosenthal avatar microamp avatar jwhitbeck avatar ben avatar antonyshchenko avatar ackalker avatar whilp avatar eoranged avatar cybershadow avatar purcell avatar wigust avatar mpereira avatar legoscia avatar lululau avatar kuba-orlik avatar lafrenierejm avatar blaenk avatar frostyx avatar xuhdev avatar duff avatar dakra avatar sdwolfz avatar amorymeltzer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.