[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwrite-devel
Subject:    Re: have compare in indenter api
From:       Dominik Haumann <dhdev () gmx ! de>
Date:       2008-05-30 13:07:42
Message-ID: 200805301507.43051.dhdev () gmx ! de
[Download RAW message or body]

Hi Robin & Leo,

those helpers are exactly what's needed. I think we need dozens of them :) 
Just commit it to svn.
Btw, is anyone working on switching the API to cursor/range style? Instead 
of (example):
  document.anchor(line, column, char)
  document.anchor(cursor, char)

Dominik

On Tuesday 27 May 2008, Robin Pedersen wrote:
> Thanks! I have a feeling I'll end up having a number of helper functions
> to suggest, but so far I've not made any suggestions because I want to be
> more sure what I actually need.
>
> The comparison function would certainly be useful in itself. In addition,
> a helper function for the "lastAnchor" function that uses the comparison
> would also be great (maybe a better name could be found).
>
> The "lastAnchor" function is basically an extension of the "anchor"
> function currently available in KateScriptDocument. The "anchor" function
> provides an easy way to find opening braces, and works with either '[',
> '{' or '('. "lastAnchor" finds all, and returns the "last", i.e. the most
> recently opened.
>
>
> // Find the last open bracket before the current line.
> // Result is a KTextEditor::Cursor object, with an extra attribute, 'ch'
> // containing the type of bracket.
> function lastAnchor(line)
> {
>    var anch = document.anchor(line, 0, '(');
>    anch.ch = '(';
>    var tmp1 = document.anchor(line, 0, '{');
>    tmp1.ch = '{';
>    var tmp2 = document.anchor(line, 0, '[');
>    tmp2.ch = '[';
>
>    if (compare(tmp1, anch) == 1)
>      anch = tmp1;
>    if (compare(tmp2, anch) == 1)
>      anch = tmp2;
>
>    return anch;
> }
>
> On Tue, 27 May 2008 20:46:33 +0200, Leo Savernik <l.savernik@aon.at> 
wrote:
> > Am Montag, 26. Mai 2008 schrieb Robin Pedersen:
> >> +// Helper function to compare two KTextEditor::Cursor objects.
> >> +// Returns 0 if equal, 1 if ca > cb, -1 if ca < cb
> >> +function compare(ca, cb)
> >> +{
> >> +  if (ca.line == cb.line) {
> >> +    if (ca.column == cb.column)
> >> +      return 0;
> >> +    else
> >> +      return (ca.column > cb.column) ? 1 : -1;
> >> +  }
> >> +  return (ca.line > cb.line) ? 1 : -1;
> >> +}
> >
> > I'd like to suggest to provide a built-in compare function for cursors
> > in indenter scripts (called compare for simplicity). The ruby indenter
> > is the
> > first but certainly not the last one in need of such a primitive.
> >
> > mfg
> > 	Leo
> > _______________________________________________
> > KWrite-Devel mailing list
> > KWrite-Devel@kde.org
> > https://mail.kde.org/mailman/listinfo/kwrite-devel


_______________________________________________
KWrite-Devel mailing list
KWrite-Devel@kde.org
https://mail.kde.org/mailman/listinfo/kwrite-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic