Skip to content

Commit

Permalink
updated for version 7.4.350
Browse files Browse the repository at this point in the history
Problem:    Using C indenting for Javascript does not work well for a {} block
            inside parenthesis.
Solution:   When looking for a matching paren ignore one that is before the
            start of a {} block.
  • Loading branch information
brammool committed Jul 2, 2014
1 parent dab70c6 commit 81439a6
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 2 deletions.
31 changes: 29 additions & 2 deletions src/misc1.c
Expand Up @@ -6614,7 +6614,7 @@ find_start_brace() /* XXX */
}

/*
* Find the matching '(', failing if it is in a comment.
* Find the matching '(', ignoring it if it is in a comment.
* Return NULL if no match found.
*/
static pos_T *
Expand Down Expand Up @@ -6644,6 +6644,32 @@ find_match_paren(ind_maxparen) /* XXX */
return trypos;
}

/*
* Find the matching '(', ignoring it if it is in a comment or before an
* unmatched {.
* Return NULL if no match found.
*/
static pos_T *
find_match_paren_after_brace(ind_maxparen) /* XXX */
int ind_maxparen;
{
pos_T *trypos = find_match_paren(ind_maxparen);

if (trypos != NULL)
{
pos_T *tryposBrace = find_start_brace();

/* If both an unmatched '(' and '{' is found. Ignore the '('
* position if the '{' is further down. */
if (tryposBrace != NULL
&& (trypos->lnum != tryposBrace->lnum
? trypos->lnum < tryposBrace->lnum
: trypos->col < tryposBrace->col))
trypos = NULL;
}
return trypos;
}

/*
* Return ind_maxparen corrected for the difference in line number between the
* cursor position and "startpos". This makes sure that searching for a
Expand Down Expand Up @@ -7419,7 +7445,8 @@ get_c_indent()
{
curwin->w_cursor.lnum = our_paren_pos.lnum;
curwin->w_cursor.col = col;
if (find_match_paren(curbuf->b_ind_maxparen) != NULL)
if (find_match_paren_after_brace(curbuf->b_ind_maxparen)
!= NULL)
amount += curbuf->b_ind_unclosed2;
else
{
Expand Down
4 changes: 4 additions & 0 deletions src/testdir/test3.in
Expand Up @@ -1950,6 +1950,10 @@ ENDTEST
JSSTART
(function($){

if (cond &&
cond) {
stmt;
}
var class_name='myclass';

function private_method() {
Expand Down
4 changes: 4 additions & 0 deletions src/testdir/test3.ok
Expand Up @@ -1728,6 +1728,10 @@ JSEND
JSSTART
(function($){

if (cond &&
cond) {
stmt;
}
var class_name='myclass';

function private_method() {
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -734,6 +734,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
350,
/**/
349,
/**/
Expand Down

0 comments on commit 81439a6

Please sign in to comment.