The Wayback Machine - https://web.archive.org/web/20201109042815/https://github.com/aserebryakov/vim-branch-stack
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

vim-branch-stack

vim-branch-stack is a Vim plugin helping to find the branching path to current line of code.

Introduction

vim-branch-stack plugin is intended to help working on legacy C/C++ code where functions are long and have many nested branches (if-else, switch-case, try-catch, while, for).

Installation

Requirements

  • python3

Vim 8+

$ cd ~/.vim/pack/directory_name/start/
$ git clone --recurse-submodules https://github.com/aserebryakov/vim-branch-stack.git

Pathogen

$ cd ~/.vim/bundle
$ git clone --recurse-submodules https://github.com/aserebryakov/vim-branch-stack.git

NeoBundle

NeoBundle 'aserebryakov/vim-branch-stack'

Without plugin manager:

Clone or download this repository and copy its contents to your ~/.vim/ directory.

Usage

The stack is shown in the location window after BranchStack command execuiton while cursor is placed on the target line.

Example

main.cpp
int main ()
{
    const int meaning = 42;
    const int pi_floor = 3;
    
    if (meaning)
    {
        if (pi_floor == 4)
        {
            // Do the stuff
        }
        else
        {
            // Cursor is here
        }
    }
    
    return 0;
}
Location window
1 main.cpp |6| if (meaning)
2 main.cpp |12| + else

Limitations

The plugin has the following limitations:

  • Commented out code with /* block comments */ brakes parsing
  • goto is not supported
  • do-while is not supported
  • Preprocessing is not supported

Contribution

Source code and issues are hosted on GitHub:

https://github.com/aserebryakov/vim-branch-stack

License

MIT License

Changelog

0.1.0

  • Initial version

0.1.1

  • Fixed handling of single line comments

Credits

About

If you have to work with legacy code and long funcitons with lots of nested "if-else" etc. this plugin will help you to find a way to current line.

Topics

Resources

License

Packages

No packages published
You can’t perform that action at this time.