Apologizes for the top posting, No indenting exists for this previously, it's a language (currently unnamed) I'm writing as an experiment in functional programming and to learn to parse.
I can't think of any other markers really, the syntax for the language is pretty minimalistic, here's a quicksort implementation that has 95% of the language in it: quicksort (ls) := if (= (length ls) 1) ls (let pivot = car ls, less = filter (lambda(x) -> < x pivot) (cdr ls), more = filter (lambda(x) -> >= x pivot) (cdr ls), in: append (quicksort less) (cons pivot (quicksort more))); main := quicksort [1 2 3 5 18 4 1 4 1 4] Since () are used to group function applications their extremely common. I was originally thinking a syntax similar to Scheme's or Common Lisp's might do it, but I'm confused how they manage it based on their indent files, I'm still pretty newbie-ish at this sort of vim stuff. On Thu, Nov 29, 2012 at 6:08 PM, Benjamin R. Haskell <v...@benizi.com> wrote: > [Reversed the top-posting, per list preference] > > > On Thu, Nov 29, 2012 at 5:24 PM, Danny Gratzer wrote: > > I am writing an indentation script for a simple language. The language is >> has very simple constructs and the indentation really only has 3 rules: >> >> 1. A comment has goes from a // until a newline, anything in a comment >> should be ignored. >> >> 2. If the line above contains a semi-colon, the indentation should be 0. >> >> 3. Otherwise, indent to 1 more than the most recent unbalanced ( and to 4 >> spaces if all paranthesis are balanced. >> >> The last rule is kinda stumping me, does anyone have any advice? >> > > Don't write the indent file if you don't have to. What language are you > trying to indent? > > Indenting gets slow if you have to scan the whole file. Unless you're > never dealing with at-all long files. Is there anything other than > semi-colons and parenthesis (im)balance that can be used for resetting > indentation? > > > > On Thu, Nov 29, 2012 at 5:27 PM, Danny Gratzer wrote: > > Oh actually 1 more rule >> >> 4. If the line above matches "let:$", or "in:$" where $ is the end of >> line, indent by 1 more than this line. >> > > On Thu, 29 Nov 2012, Danny Gratzer wrote: > > Excuse me, rule 3. should read: >> >> 3. Otherwise, indent to 1 more than the most recent unbalanced ( and to >> the >> same level as the last line if all parenthesis are balanced and no other >> rules apply. >> > > It'd be helpful to see some samples of what you're trying to indent. > Especially to see whether the scan all the way to the start of the file can > be avoided. > > -- > Best, > Ben > > -- > You received this message from the "vim_use" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit > http://www.vim.org/maillist.**php<http://www.vim.org/maillist.php> > -- Danny Gratzer -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php