Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make into self-contained app [master task] #37

Open
7 tasks
jordwalke opened this issue Dec 17, 2016 · 2 comments
Open
7 tasks

Make into self-contained app [master task] #37

jordwalke opened this issue Dec 17, 2016 · 2 comments

Comments

@jordwalke
Copy link
Owner

jordwalke commented Dec 17, 2016

If anyone is interested in working on this, please let me know. I will help you get the resources you need.

Definitely A Good Idea:

  • Package a pre-built version of MacVim with Ruby/Python etc, plus the VimBox icon into a single VimBox.app.
  • Packaged app should come with all plugins pre-downloaded, and the pre-downloaded versions would be copied into the user config directory at first startup time.
  • Put all config for VimBox into ~/.config/vimbox/ and never override existing Vim config (or neovim config) in ~/.vim. There should be no fear in trying VimBox, and it shouldn't mess with your existing config.
  • Version all of the NeoBundle plugins so that installs are reliable (right now, everything just downloads from master branch on each plugin's repo). We should specify the specific branch/commit, and mirror all the out-of-box plugins on a github org so that no plugin author can remove them causing installs to fail.
  • Move the upgrade workflow out of Vim and into another process. Since the .app comes with a version of all the plugins already downloaded, we don't need to interrupt the startup process to install the plugins (the only reason why it currently blocks the startup process to check for plugins is because the plugins aren't downloaded the first time you open the app). Stale plugins can be detected once the app starts up with the last version of the plugins, message the user that stuff's out of date, and kick off the upgrade process (possibly in a nice GUI workflow) - then app restart will make the updates take effect.
    -[ ] Include and install ligature font into Mac, so that out-of-the box, airline renders correctly and ligatures look great.

Not Necessarily a Good Idea But Investigate:

  • Bundle npm, and use npm to install all the Vim plugins. I'm not sure this is a good idea, but we could consider it. It would mean including a self-contained version of node! We would not be depending on npm the service at all because we'd list specific commit hashes of plugins, and we could mirror all of the plugins on a VimBox org just to make sure they'd always be available. See the benefits you'd get from using npm: You can automatically get a free GUI for updating plugins like Atom has: https://www.npmjs.com/package/npm-gui
    I'm always concerned about node/npm getting in the startup path of Vim (I like my instant window opening capabilities of MacVim thank you!) so it's important that all plugin management be done out of process.
  • Better/consistent/retina toolbar icons + keyboard shortcut to toggle the toolbar - these icons could be upstreamed to MacVim too, but I think we'd want specific icons for debugger integration and other VimBox specific features like (Reformat code etc).

The goal isn't to create a replacement of the MacVim download, but rather to have a one click app that people can try out so they can see what Vim (and MacVim) are capable of, but without disrupting their existing MacVim configuration.

@oriSomething
Copy link

One side note. I'm actually glad that VimBox override vi settings, since when I come to a new computer it makes it easier to apply default good settings to terminal vim as well. Since in many cases using vim inside terminal makes more sense to me.
Another issue is about NPM / Node bundling I'm not sure it's a good idea either. Sounds to me like a big overkill with many buggy edge cases. Maybe I'm just saying it since I haven't did anything similar

@jordwalke
Copy link
Owner Author

jordwalke commented Dec 18, 2016

@oriSomething Having a separate ~/.config/vimbox settings directory doesn't mean you can't launch vim from the command line with that new config directory (I think you can do vim -u ~/.config/vimbox/.vimrc. Then, you could also have a menu option in the GUI menu that says "Install VimBox's settings over the default Vim settings (will make a backup)".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants