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

Ideas and features #13

Open
justgage opened this issue Mar 15, 2015 · 5 comments
Open

Ideas and features #13

justgage opened this issue Mar 15, 2015 · 5 comments

Comments

@justgage
Copy link

Here's a list of my ideas/wishlist

  • Keybinding to evaluate a clojure expression anywhere in the system
  • No non-visual mode and other useless features
  • very easy tutorial when it first starts up to make the learning curve better
  • built in package management for plugins?
  • Native support for multiple cursors
  • Support for running in the browser via clojurescript
  • Visual marks
  • NERDTree like thing built in (because who doesn't use vim with it?)
  • Contextual syntax highlighting (each variable has a different name by scope helping you keep track of stuff)
  • "f" (possibly a different key binding) takes multiple keystrokes like 3 to make the likelihood of getting to where you want to get to more likely (often times I type a letter thinking it will take me to the place I want only to realize that there's lots of other ones) Kind of like the easy finder plugin.
  • the ":" menu has normal vim keybindings in it (might drive some vimers crazy though).
  • Handling split windows better, perhaps something dynamic like the dwm window manager.
  • more to come...
@justgage
Copy link
Author

I was programming a elisp project recently and discovered "paredit" and I must say that it's very useful when dealing with all the parenthesis. I think this would be a good feature for avi. Here's an animated guide showing some of it's useage. It's used in Nightcode which might not be too hard to just use some of the code from over there.

@eraserhd
Copy link
Member

@justgage There is an implementation called paredit.clj which I've thought about integrating. But I've also used some Vim plugins and had some awful experience with the interactions, and I've been thinking about how I want it to behave. I think it can be smarter in Vim world.

But I definitely want something. Perhaps something close.

I actually don't use NERDTree that much anymore because of Ctrl+P. I agree with no non-visual mode.

I've been thiking about :( starts a clojure expression. But I've also been thinking about what "anywhere in the system" means. What namespaces are in that environment? Since we don't mutate much, it needs to be a function (expression?) which takes an "editor" as the first argument and returns an editor. Is threading implicit so people can't get it wrong? If threading is implicit, perhaps can we (defn wq [editor] ... ) and so forth in the REPL namespace?

Anyway, there's a trello here: https://trello.com/b/E2LFvVLy/avi

Feel free to drop cards on it, vote, and so forth.

@justgage
Copy link
Author

I don't have permission to edit the trello board or else I would be glad to. I agree that the vim implementations of paredit are awful mostly due to the keybindings. The emacs bindings aren't too bad which we could use in insert mode. Another option is perhaps to have a paredit mode where most of the bindings are rebound to traversing and editing the tree. However I'm not sure if it's wise to create too many more modes than vim already has.

@eraserhd
Copy link
Member

@justgage I just added public commenting and voting to the board and invited you.

@justgage
Copy link
Author

Thank you :).

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