ide provides a tool set that gets out of your way
a tool that glues vim, git, direnv, docker compose and ctags together to provide a powerful integrated development environment
After installing ide
you can invoke it without any arguments to get help:
$ ide
ide provides a powerful ide that gets out of your way
Usage:
ide [command]
Available Commands:
compare Compare a file in the current project with another project
completion Output shell completion code for the specified shell
ctags Update ctags for the ide project
destroy Remove all ide configuration for a repository
fix Fix source code
help Help about any command
hook Manage git hooks for an ide project
lint Lint source code and report errors
rgit Run a git command in multiple git projects
shim Manage shims for an ide project
status Get the current status of your ide project
version Display version and build information
Flags:
-h, --help help for ide
Use "ide [command] --help" for more information about a command.
To remove any traces of ide
run:
$ ide destroy
2017/07/04 20:16:18 Repository is no longer an ide project
You can also view the current status of your ide project:
$ ide status
Ide
Name: my-project
Branch: master
Location: /Users/nrocco/dev/my-project
Ctags:
File: /Users/nrocco/dev/my-project/.git/tags
Age: 5 days ago
Size: 18 kB
Hooks: ~
Binaries:
go: docker-compose exec --workdir=$PWD backend go
goimports: docker-compose exec --workdir=$PWD backend goimports
gofmt: docker-compose exec --workdir=$PWD backend gofmt
npm: docker-compose exec --workdir=$PWD frontend npm
In the above case no hooks are enabled for this project. In order to enable
the post-checkout
hook (which runs ctags) run:
$ ide hook enable post-checkout
2017/07/04 20:17:37 Hook post-checkout enabled
You can see the hook is enabled:
$ ls -ilah .git/hooks/post-checkout
29546377 lrwxr-xr-x 1 nrocco staff 52 Jul 4 20:17 .git/hooks/post-checkout -> /usr/local/bin/ide
In your local .envrc
:
PATH_add .git/bin
export COMPOSE_FILE=${PWD}/.git/compose.yaml
In .git/compose.yaml
:
---
name: "my-name"
services:
ruby:
image: "ruby:3"
platform: "linux/amd64"
init: true
command: ["sleep", "infinity"]
working_dir: "${PWD}"
volumes:
- "${PWD}:${PWD}"
- "ruby_cache:/usr/local/bundle"
volumes:
ruby_cache:
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Make sure that tests pass (
make test
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- Nico Di Rocco (https://github.com/nrocco)