Vim Completion for Objective-J and Cappuccino
Vim script Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
autoload
ftdetect
ftplugin
lib
syntax
README.md

README.md

#Vim Objective-J plugin.

##Install

$ git clone git://github.com/nanki/vim-objj
$ vi .vimrc
set runtimepath+=path/to/objjvim

##Demo Checkout Youtube movie that shows the plugin in action.

YouTube - Objective-J Completion in Vim

##Requirements

  • Vim compiled with Ruby.
  • neocomplcache or AutoComplePop (optional)

##Features

###Smartbrackets If you type unmatched ],

[CPButton alloc] ]

Smartbrackets will add [ before [ which matches the last ] and move the cursor before ] which you typed. (indicated with ^ below)

[[CPButton alloc] ]
                  ^

In another case, if you type ] after an Objective-J method,

[CPButton alloc] init]

Smartbrackets will add a bracket and move the cursor just after the letter you typed then.

[[CPButton alloc] init]
                       ^

###Omni-completion By typing C-x C-o, you can use omni-completion anywhere you should input class names, methods and constants. The plugin provides an Objective-J omni-completion according to precalculated class databases(*.jd files).
By default, the repository includes the databases for Foundation.framework and AppKit.framework

The plugin complete class name, class methods and instance methods at the positions indicated below.

var button = [CPB
                 ^
var button = [CPButton al
                         ^
var button = [CPButton alloc] in
                                ^
var button = [[CPButton alloc] init];

###Type estimation When the receiver is not a class name, type estimation will be taking place.

var button = [CPButton alloc] in

vim : Um... [CPButton alloc] seems to return (id), maybe (CPButton).

Here are various types of estimation.

####Arguments

- (void)setWindow:(CPWindow)window {
  [window setFra
                ^

vim : Hmm... window should be an instance of CPWindow.

####Variable Assignment

var button = [[CPButton alloc] init];
[button
        ^

vim : Mmm... button may be an instance of CPButton.

####self and super Estimates types from type declarations.

@implementation CPCustomWindow: CPWindow {
  ...

  [self cont
            ^

vim : self should be an instance of CPCustomWindow...

##Links