Permalink
Commits on May 8, 2017
  1. Merge pull request #523 from thoughtbot/replace-coffee-with-java

    Add JavaScript syntax highlighting
    geoffharcourt committed on GitHub May 8, 2017
  2. Don't rely on Bash in post-up hook

    In 16219a3 we implemented a post-up
    hook that checked for a problematic `/etc/zshenv` file. OSX/macOS has
    changed the file responsible for executing `path_helper` and loading the
    system paths multiple times, and this script change issued a warning to
    users if `path_helper` might be called in such a way that their paths
    could be unexpectedly reordered.
    
    The script used colored output to highlight this problem for the user,
    and relied on Bash's script path introspection (through `$BASH_SOURCE`)
    to print the location of the `post-up` hook to assist the user in
    troubleshooting and understanding where our warning came from.
    
    This change removes the hook's reliance on GNU Bash in favor of `sh`. It
    uses the POSIX-compliant `$0` to determine the hook location (this
    method is less robust than Bash's `$BASH_SOURCE`, but is available in
    all POSIX shells) and removes colored output in the warning to be
    compatible with shells that don't support colored output.
    
    Fix #517.
    geoffharcourt committed May 1, 2017
  3. Add JavaScript syntax highlighting

    It seems like JavaScript/ES6 is becoming more common for us to run into
    in the wild compared to CoffeeScript
    with the advent of Babel / transpiling.
    
    Eventually, we'll probably want to remove kchmck/vim-coffee-script.
    Users working on CoffeeScript applications would need to move that
    plugin into their personal dotfiles.
    croaky committed May 8, 2017
Commits on Apr 28, 2017
  1. Run `reset` in post-up hook to fix terminal issue

    Some tmux users have reported that when running `rcup` that during the
    post-up hook Vim would issue errors about input not coming from a
    terminal and then the terminal would look and behave unexpectedly.
    
    Running `reset` after the Vim plugin install step in `post-up` appears
    to resolve the issue.
    
    Fix #516.
    geoffharcourt committed Apr 28, 2017
  2. Allow user to ignore some default vim plugins

    The `UnPlug` command allows a user to remove a plugin from vim-plug's
    list of plugins to install/activate. This command can be used to
    selectively ignore shared plugins from `vimrc.bundles` without needing
    to overwrite the entire file with a personal replacement.
    
    This change is dependent on vim-plug continuing to use the `g:plugs`
    global variable.
    geoffharcourt committed Nov 1, 2016
  3. Unbind the shortcut for suspend-client

    Why:
    
    I occasionally will try to zoom in on a pane with the key combination of
    C-s then z. However, instead of having the agility to remove my finger
    from the ctrl key, I clumsily continue to have it depressed while
    applying pressure to the z key. This results in the `suspend-client`
    command being executed by tmux. I am then left not knowing what to do
    and I can't reattach to the session the that terminal window. It's very
    disconcerting and I wish it hadn't happened.
    
    This PR:
    
    Removes the binding for `suspend-client`.
    MattMSumner committed with geoffharcourt Apr 28, 2017
Commits on Apr 27, 2017
  1. Remove gvimrc

    This originally came from jferris/dotfiles,
    the parent of thoughtbot/dotifles.
    
    I'm not a Vim GUI user.
    Are others at thoughtbot also shell Vim users?
    croaky committed Apr 27, 2017
Commits on Apr 26, 2017
  1. Remove git churn command

    I added this four years ago but haven't been using it.
    Not common enough to be included in company-wide dotfiles?
    Can move to personal dotfiles if desired.
    croaky committed Apr 26, 2017
Commits on Mar 24, 2017
Commits on Mar 10, 2017
  1. Update thoughtbot logo

    tysongach committed on GitHub Mar 10, 2017
Commits on Feb 21, 2017
Commits on Jan 24, 2017
  1. Revert "Explicitly specify no input from terminal in post-up hook"

    This reverts commit 99a18f6.
    
    Users reported problems after this change, so I'm pulling it.
    geoffharcourt committed Jan 24, 2017
Commits on Jan 19, 2017
  1. Explicitly specify no input from terminal in post-up hook

    This change prevents the `post-up` hook from breaking the terminal for
    the rest of the session when running `rcup`. Since the session is
    completely automated, we don't need input from the terminal once Vim
    launches.
    geoffharcourt committed with geoffharcourt Jan 19, 2017
  2. Move aliases below local config

    Enables overriding of aliases that environment variables
    dtt101 committed with geoffharcourt Jan 15, 2017
  3. Add pre-push git hook

    bradurani committed with geoffharcourt Sep 28, 2016
Commits on Jul 22, 2016
  1. Add `ag` mappings in vim

    https://robots.thoughtbot.com/faster-grepping-in-vim
    
    - Create an `:Ag` command if none is defined.
    - map `\` in normal mode to set up the command for an argument
    geoffharcourt committed Jul 22, 2016
  2. Use "absolute" paths for agignore

    This seems to resolve an issue where CtrlP would randomly return "NO
    ENTRIES".
    
    See https://forum.upcase.com/t/ctrlp-sometimes-displays-no-entries/5658
    
    This also sorts the paths alphabetically, because OCD. 🎉
    tsigo committed with geoffharcourt Jul 5, 2016
Commits on Jun 28, 2016
  1. Update install documentation

    In #488 there was some confusion over where to clone the dotfiles
    repository before running `rcm`. While the repository can be placed
    anywhere, by default users should be placing it in `~/dotfiles` if they
    are using the default installation instructions and an unmodified
    `.rcrc`.
    
    Close #488.
    geoffharcourt committed Jun 28, 2016
Commits on Jun 10, 2016
  1. Add a zsh binding for push-line-or-edit: ^Q

    The use case for push-line-or-edit:
    
    1. You are in the middle of typing a long command, perhaps something
    involving `tar`.
    2. You realize that you must first run another command, such as `man
    tar`.
    3. You invoke `push-line-or-edit`, which gives you a fresh prompt. You
    type `man tar` and read as needed.
    4. When the command (`man tar`) finishes, the long command you
    half-typed is back, exactly as you left off.
    
    Other use cases are realizing that you're in the wrong directory before
    you press enter, changing your Ruby version before you press enter on
    that `bundle` command, or in general being partway through something and
    realizing that you're not quite ready to run it yet.
    
    While here, turn off start/stop output control, which gives us back the
    ^Q keybinding.
    mike-burns committed Apr 25, 2016
Commits on Jun 8, 2016
  1. Configure basic ctags for javascript projects

    There are, apparently, more things we need to configure. @BlakeWilliams shared
    http://dance.computer.dance/posts/2015/04/using-ctags-on-modern-javascript.html
    which outlines a bunch more things that don't work out of the box. For
    example, ES2015 classes and their methods are not properly found, even
    with this PR. There's more work to do here.
    iwz committed May 23, 2016
Commits on Apr 15, 2016
  1. Git ignore .byebug_history

    After using byebug on any Ruby file, the sessions history is written to
    this file. It shouldn't be part of our repositories, so we ignore it.
    
    See also: thoughtbot/suspenders#710
    tute committed Apr 15, 2016
  2. Overwrite internal field separator when replacing.

    Problem:
    Currently the `for` in bash will break up lists by whitespace, so if a
    filename has a space in it the `for` will break it up incorrectly.
    
    AG will separate the files with a newline character, so this temporarily
    overwrites the `IFS` to be used correctly for this use case.
    
    [Docs](https://bash.cyberciti.biz/guide/$IFS)
    blainesch committed with geoffharcourt Apr 8, 2016
Commits on Apr 8, 2016
  1. Avoid expanding tabs to spaces for Golang files

    * `noexpandtab` will ensure tabs are used instead of staces when tabbing
    or auto-indenting.
    * `softtabstop=2` isn't needed because we are already setting
    `tabstop=2` in our `.vimrc`.
    gylaz committed with geoffharcourt Mar 31, 2016
  2. Add rhubarb.vim for fugitive Github support

    We do most of our client work on Github,
    and a large portion of our personal projects
    are hosted there.
    
    fugitive.vim currently supports
    opening the current file in the current branch
    in a browser at Github through the `Gbrowse` command.
    That command is [slated to be removed to make fugitive
    agnostic about coding sites](fugitive-docs).
    
    The capability to quickly generate or view a Github URL
    specific to the current branch
    can be useful in PR reviews
    or other discussions about code.
    
    This change adds rhubarb.vim,
    a plugin that implements the slated-to-be-removed
    functionality of fugitive that works with Github.
    It also provides the user with omni-completion (`<C-x><C-o>`)
    to autocomplete Github issues, issue URLs, and collaborators.
    
    [fugitive-docs]: https://github.com/tpope/vim-fugitive/blob/18d6d1ab82d9ac15586d7d3c1a36f9ef6fb50eae/doc/fugitive.txt
    geoffharcourt committed Feb 18, 2016
Commits on Mar 24, 2016
  1. Update vimrc.bundles

    Fixed typo
    btakashi committed Mar 24, 2016
Commits on Mar 11, 2016
  1. Use vim-test instead of vim-rspec

    vim-rspec is an excellent Vim plugin for running RSpec tests but there
    are many of us who run different kinds of tests on any given day.
    vim-test is built to support a wide array of test frameworks and
    strategies for executing those tests.
    
    vim-test ships with support for several languages and frameworks in use
    on thoughtbot projects today:
    
    * Ruby (both RSpec and Minitest)
    * Elixir (ExUnit and espec)
    * Go (gotest)
    * Python (nose, pytest, djangotest, djangonose)
    * JavaScript (jasmine, mocha)
    
    It also supports several execution strategies I have seen people use at
    thoughtbot:
    
    * Dispatch
    * vim-tmux-runner
    * Tslime
    * Terminal.app/iTerm.app tabs
    * neovim's native terminal
    * `:!`
    
    vim-test is extensible, both for additional languages/frameworks and for
    execution contexts. See: https://github.com/janko-m/vim-test
    derekprior committed with geoffharcourt Feb 12, 2016
Commits on Feb 22, 2016
  1. Update copyright dates

    It's 2016.
    geoffharcourt committed Feb 22, 2016
Commits on Feb 14, 2016
  1. Set the default shell type to POSIX in vim

    If it can't be determined that a shell script is either `bash` or `ksh`, use `posix` as the default instead of plain `sh`. It seems unlikely that `/bin/sh` wouldn't be a POSIX-compliant shell on modern systems.
    
    See [`:help ft-sh-syntax`](http://vimdoc.sourceforge.net/htmldoc/syntax.html#ft-sh-syntax) and [this thread on /r/vim](https://www.reddit.com/r/vim/comments/25g1sp/why_doesnt_vim_syntax_like_my_shell_files/chlc4ep) for more info.
    
    This fixes the issue where `$(...)` syntax in shell scripts is highlighted as an error in vim.
    sharplet committed Feb 14, 2016
Commits on Jan 31, 2016
  1. Add support for ctags in Elixir

    Exuberant ctags has no native support for Elixir at this point. This
    configuration is sourced from https://github.com/mmorearty/elixir-ctags.
    derekprior committed Jan 29, 2016
Commits on Jan 11, 2016
  1. Globally ignore compiled Python files.

    The first time a `.py` file is run, or any time it's been modified, Python
    creates a `.pyc` file containing a bytecode representation.
    
    These bytecode files should always be ignored by Git, since keeping them
    updated in a repo would be time consuming and would serve no purpose.
    georgebrock committed Jan 11, 2016
Commits on Jan 8, 2016
  1. Add golang configuration samples

    Add suggested Go configuration for Vim into the `ftplugin` folder and
    the vim-go plugin. We may use this as a template for adding further
    language-specific settings in the future for languages that aren't
    universally used by the team.
    
    * `fatih/vim-go`: The de-facto Golang Vim plugin.
    * `softtabstop=2`: As a side effect of setting how "large" a tab is in
      insert mode, Vim is able to delete tabs with the backspace key in
      Insert mode.
    * `compiler go`: Necessary for plugins using the `make` command, such as
      vim-dispatch.
    * `listchars=tab:\ \ `: Don't highlight tabs as "»·" as if they were
      problem characters in go files. Also recommended for *sh files and any
      others which which should also be using tabs.
    * `go_fmt_command = "goimports"`: Tell vim-go to use the `goimports`
      command rather than `gofmt`, which attempts to find dependencies and
      adds them to your import statement.
    calebthompson committed Nov 13, 2015
Commits on Dec 19, 2015
  1. Better match the default behavior of ctrl-P when using ag

    When using ctrl-p without ag, the pattern given is not treated as a regular expression. Additionally, the value passed when first opening ctrl-p is not actually a valid PCRE regex, and produces an error when used on Windows. This modifies the options to treat the pattern as a string literal, not a regular expression, resolving the Windows problem, and better matching the behavior of ctrl-p without Ag.
    sgrif committed Dec 19, 2015
Commits on Dec 18, 2015
  1. Extract filetype-specific setups to ftplugin

    Vim's documentation advises that buffer-specific configuration based on
    a filetype should be performed via a file in `$HOME/.vim/ftplugin`:
    http://vimdoc.sourceforge.net/htmldoc/usr_41.html#41.12
    
    This change moves CSS/Sass-, Git commit message-, and Markdown-related
    editor settings into `ftplugin/gitcommit.vim` and
    `ftplugin/markdown.vim`, and rewrites those settings to avoid using
    `autocmd`, letting Vim execute `setlocal` when a file of the filetype is
    determined or set.
    geoffharcourt committed Dec 18, 2015
Commits on Dec 11, 2015
  1. Update `bin/replace` script for better portability

    The existing implementation of the `replace` script does not work on
    GNU/Linux due to differences in the implementation of `sed`. This change
    reworks the process of the replacement to create temporary files,
    apply the changes to the files, and then move them into place. It will
    improve the script's portability for more OSes.
    pedro-nonfree committed with geoffharcourt Dec 11, 2015
Commits on Dec 8, 2015
  1. Use one space, not two, after punctuation.

    When using a join command (`gq`, `J`), vim defaults to adding two spaces
    after '.', '?', and '!'.
    
    Setting `nojoinspaces` causes vim to only insert a single space.
    bernerdschaefer committed Dec 8, 2015