| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.350 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 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. |
| Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok |
| |
| |
| |
| |
| |
| *** 6614,6620 **** |
| } |
| |
| /* |
| ! * Find the matching '(', failing if it is in a comment. |
| * Return NULL if no match found. |
| */ |
| static pos_T * |
| --- 6614,6620 ---- |
| } |
| |
| /* |
| ! * Find the matching '(', ignoring it if it is in a comment. |
| * Return NULL if no match found. |
| */ |
| static pos_T * |
| |
| *** 6645,6650 **** |
| --- 6645,6676 ---- |
| } |
| |
| /* |
| + * 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 |
| * matching paren above the cursor line doesn't find a match because of |
| |
| *** 7419,7425 **** |
| { |
| curwin->w_cursor.lnum = our_paren_pos.lnum; |
| curwin->w_cursor.col = col; |
| ! if (find_match_paren(curbuf->b_ind_maxparen) != NULL) |
| amount += curbuf->b_ind_unclosed2; |
| else |
| { |
| --- 7445,7452 ---- |
| { |
| curwin->w_cursor.lnum = our_paren_pos.lnum; |
| curwin->w_cursor.col = col; |
| ! if (find_match_paren_after_brace(curbuf->b_ind_maxparen) |
| ! != NULL) |
| amount += curbuf->b_ind_unclosed2; |
| else |
| { |
| |
| |
| |
| *** 1950,1955 **** |
| --- 1950,1959 ---- |
| JSSTART |
| (function($){ |
| |
| + if (cond && |
| + cond) { |
| + stmt; |
| + } |
| var class_name='myclass'; |
| |
| function private_method() { |
| |
| |
| |
| *** 1728,1733 **** |
| --- 1728,1737 ---- |
| JSSTART |
| (function($){ |
| |
| + if (cond && |
| + cond) { |
| + stmt; |
| + } |
| var class_name='myclass'; |
| |
| function private_method() { |
| |
| |
| |
| *** 736,737 **** |
| --- 736,739 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 350, |
| /**/ |
| |
| -- |
| FATHER: You killed eight wedding guests in all! |
| LAUNCELOT: Er, Well ... the thing is ... I thought your son was a lady. |
| FATHER: I can understand that. |
| "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |