mirror of
https://github.com/vim/vim.git
synced 2025-07-24 10:45:12 -04:00
updated for version 7.4.350
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.
This commit is contained in:
parent
dab70c63e1
commit
81439a6d1b
31
src/misc1.c
31
src/misc1.c
@ -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 *
|
||||
@ -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
|
||||
@ -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
|
||||
{
|
||||
|
@ -1950,6 +1950,10 @@ ENDTEST
|
||||
JSSTART
|
||||
(function($){
|
||||
|
||||
if (cond &&
|
||||
cond) {
|
||||
stmt;
|
||||
}
|
||||
var class_name='myclass';
|
||||
|
||||
function private_method() {
|
||||
|
@ -1728,6 +1728,10 @@ JSEND
|
||||
JSSTART
|
||||
(function($){
|
||||
|
||||
if (cond &&
|
||||
cond) {
|
||||
stmt;
|
||||
}
|
||||
var class_name='myclass';
|
||||
|
||||
function private_method() {
|
||||
|
@ -734,6 +734,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
350,
|
||||
/**/
|
||||
349,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user