Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
Daniel Hahler [Sat, 21 Jul 2018 07:02:47 +0000 (09:02 +0200)]
Use Docker for easier test running (#86)
Switches to CircleCI instead of Travis, which handles running tests in
Docker much better, especially since Travis is really slow (~30min vs
2.5min on CircleCI).
The Docker image is based on
https://github.com/tweekmonster/vim-testbed, and targets are added to
the Makefile to build/push it.
Jake Harr [Sun, 15 Jul 2018 19:11:26 +0000 (15:11 -0400)]
Add option for hanging closing brackets (#94)
The main idea is discussed at length in PyCQA/pycodestyle#103.
* Add tests for `python_pep8_indent_hang_closing`
This might be overkill. It reruns the current "vim" set of tests once
for each value of the new setting. Of course, this makes the test suite
take longer to run. I couldn't think of a good way to factor out the
relevant test cases without creating a mess.
Daniel Hahler [Thu, 5 Oct 2017 21:12:24 +0000 (23:12 +0200)]
Intermediate fix for indenting huge dicts
This uses different offsets for the type of pairs: '()' and '[]' will
only look for just 20 lines above, while 1000 lines are used for '{}',
which might be a huge dict.
Daniel Hahler [Sat, 7 Oct 2017 19:29:10 +0000 (21:29 +0200)]
tests: explicitly enable old "should" syntax to fix deprecation warnings (#92)
> Deprecation Warnings:
>
> Using `should` from rspec-expectations' old `:should` syntax without
> explicitly enabling the syntax is deprecated. Use the new `:expect`
> syntax or explicitly enable `:should` with `config.expect_with(:rspec) {
> |c| c.syntax = :should }` instead. Called from
> …/vim-python-pep8-indent/spec/indent/indent_spec.rb:141:in
> `block (3 levels) in <top (required)>'.
Daniel Hahler [Sat, 3 Sep 2016 00:11:55 +0000 (02:11 +0200)]
spec_helper: pass in already obtained line (#60)
The tests are quite slow, and I have the feeling that most comes from
the helpers, and more importantly not reusing the Vim instance (because
of the lockup issue).
Antony Lee [Tue, 21 Jun 2016 18:28:51 +0000 (11:28 -0700)]
Add Cython support (#48)
Just making indents after cdef and cpdef similar to def. The variable
must be made buffer-local in case one is editing both Python and Cython
sources at the same time.
Daniel Hahler [Wed, 6 May 2015 13:12:26 +0000 (15:12 +0200)]
Improve handling of lookup in previous lines
- Handle jedi-vim call signatures when looking for colon and function
def in previous line.
This adds `jedi\S` to s:skip_special_chars and improves the algorithm to
find the colon in the previous line in `s:indent_like_previous_line`.
- Add `s:match_expr_on_line` and use it for `nothing_after_opening_paren`.
- Handle comments after opening paren (#32).
NOTE: This handles older Vim versions, where `synconcealed` behaves different
(returns an empty list for non-concealed) and `getcurpos` is not
available (Vim 7.3.429 (used on Travis)).
Hassan Kibirige [Thu, 13 Mar 2014 09:50:20 +0000 (04:50 -0500)]
Refix issue #5 (Correct indent after end of block)
The implementation clean up reintroduced a more severe
version of the bug. Plus, the test was slightly deficient
to catch the regression.
Problem
-------
Given two adjacent blocks where the 2nd block has
an equal or smaller indentation level compared to the 1st
block. If the 1st block does not end in a stop statement
it always sucks up the 2nd block.
This changes the meaning of code that already adheres to the
pep8 standard.
Solution
--------
Do not inherit indentation of the previous line if the current line
has less indentation but is valid.
has2k1 [Thu, 31 Oct 2013 10:17:16 +0000 (05:17 -0500)]
Fix issue #5 (Correct indent after end of block)
Problem
-------
Given two adjacent blocks where the 2nd block has
an equal or smaller indentation level compared to the 1st
block. If the blocks are not separated by an empty line,
the 2nd block will be placed (indented) inside the 1st
block.
This changes the meaning of code that already adheres to the
pep8 standard.
Solution
--------
Do not inherit indentation of the previous line if the current line
has less indentation but is valid.
Reason
------
The indent functions, in this case
GetPythonPEPIndent()
can modify the cursor position. There is nothing wrong with that
consequence, vim takes it into account and restores the cursor
position (see References below). For the tests vim is not doing
the calling, so the cursor is not restored.
Solution
--------
Restore the cursor position after calling the indent function.