Let's create a Potion file we can use as a sample as we're working on our
plugin. Create a
factorial.pn file somewhere and put the following Potion
code inside it:
factorial = (n): total = 1 n to 1 (i): total *= i. total. 10 times (i): i string print '! is: ' print factorial (i) string print "\n" print.
This code creates a simple factorial function and calls it ten times, printing
the results each time. Go ahead and run it with
potion factorial.pn. The
output should look like this:
0! is: 0 1! is: 1 2! is: 2 3! is: 6 4! is: 24 5! is: 120 6! is: 720 7! is: 5040 8! is: 40320 9! is: 362880
If you don't get this output, or you get an error, stop and figure out what's gone wrong. The code should work exactly as-is.
Take some time to understand how the code works. Refer to the Potion docs liberally. It's not critical to understanding Vimscript but it will make you a better programmer.
Detecting Potion Files
factorial.pn in Vim and run the following command:
Vim will display
filetype= because it doesn't know what a
.pn file is yet.
Let's fix that.
ftdetect/potion.vim in your plugin's repo. Put the following lines
au BufNewFile,BufRead *.pn set filetype=potion
This creates a single autocommand: a command to set the filetype of
potion. Pretty straightforward.
Notice that we didn't use an autocommand group like we usually would. Vim
automatically wraps the contents of
ftdetect/*.vim files in autocommand groups
for you, so you don't need to worry about it.
factorial.pn file and reopen it. Now run the previous command
This time Vim displays
filetype=potion. When Vim started up it loaded the
autocommand group inside
~/.vim/bundle/potion/ftdetect/potion.vim, and when it
factorial.pn the autocommand fired, setting the
Now that we've taught Vim to recognize Potion files we can move on to actually creating some useful behavior in our plugin.
:help ft. Don't worry if you don't understand everything there.
Modify the Potion plugin's
ftdetect/potion.vim script to use