summaryrefslogtreecommitdiffstats
path: root/indent/rust.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2013-11-02 23:27:57 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2013-11-02 23:27:57 +0100
commit30c1920e4fa4e612238e1f435907c40ecfa47f33 (patch)
treef88ffb408895a5baf93fe81fdd12acba17f32d44 /indent/rust.vim
parent57cfac7ae384466c3ff2543a9200319dc1d459a0 (diff)
downloadvim-polyglot-1.4.1.tar.gz
vim-polyglot-1.4.1.zip
Massive update :)v1.4.1
Diffstat (limited to 'indent/rust.vim')
-rw-r--r--indent/rust.vim19
1 files changed, 17 insertions, 2 deletions
diff --git a/indent/rust.vim b/indent/rust.vim
index ae3ca403..1f08c519 100644
--- a/indent/rust.vim
+++ b/indent/rust.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Rust
" Author: Chris Morgan <me@chrismorgan.info>
-" Last Change: 2013 Jul 10
+" Last Change: 2013 Oct 29
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -104,8 +104,23 @@ function GetRustIndent(lnum)
let prevline = s:get_line_trimmed(prevnonblank(a:lnum - 1))
if prevline[len(prevline) - 1] == ","
\ && s:get_line_trimmed(a:lnum) !~ "^\\s*[\\[\\]{}]"
+ \ && prevline !~ "^\\s*fn\\s"
" Oh ho! The previous line ended in a comma! I bet cindent will try to
- " take this too far... For now, let's use the previous line's indent
+ " take this too far... For now, let's normally use the previous line's
+ " indent.
+
+ " One case where this doesn't work out is where *this* line contains
+ " square or curly brackets; then we normally *do* want to be indenting
+ " further.
+ "
+ " Another case where we don't want to is one like a function
+ " definition with arguments spread over multiple lines:
+ "
+ " fn foo(baz: Baz,
+ " baz: Baz) // <-- cindent gets this right by itself
+ "
+ " There are probably other cases where we don't want to do this as
+ " well. Add them as needed.
return GetRustIndent(a:lnum - 1)
endif