Staging
v0.8.1
Revision 85d5c18c9d83a1d54eecc4c2ad4dce63194107c6 authored by R. David Murray on 03 December 2017, 23:51:41 UTC, committed by GitHub on 03 December 2017, 23:51:41 UTC
The original algorithm tried to delegate the folding to the tokens so
that those tokens whose folding rules differed could specify the
differences.  However, this resulted in a lot of duplicated code because
most of the rules were the same.

The new algorithm moves all folding logic into a set of functions
external to the token classes, but puts the information about which
tokens can be folded in which ways on the tokens...with the exception of
mime-parameters, which are a special case (which was not even
implemented in the old folder).

This algorithm can still probably be improved and hopefully simplified
somewhat.

Note that some of the test expectations are changed.  I believe the
changes are toward more desirable and consistent behavior: in general
when (re) folding a line the canonical version of the tokens is
generated, rather than preserving errors or extra whitespace.
1 parent 29ba688
History
File Mode Size
internal
Python-ast.h -rw-r--r-- 21.5 KB
Python.h -rw-r--r-- 2.8 KB
abstract.h -rw-r--r-- 39.8 KB
accu.h -rw-r--r-- 1016 bytes
asdl.h -rw-r--r-- 1.2 KB
ast.h -rw-r--r-- 477 bytes
bitset.h -rw-r--r-- 810 bytes
bltinmodule.h -rw-r--r-- 264 bytes
boolobject.h -rw-r--r-- 886 bytes
bytearrayobject.h -rw-r--r-- 2.1 KB
bytes_methods.h -rw-r--r-- 3.1 KB
bytesobject.h -rw-r--r-- 8.3 KB
cellobject.h -rw-r--r-- 713 bytes
ceval.h -rw-r--r-- 8.3 KB
classobject.h -rw-r--r-- 1.6 KB
code.h -rw-r--r-- 5.9 KB
codecs.h -rw-r--r-- 6.6 KB
compile.h -rw-r--r-- 2.7 KB
complexobject.h -rw-r--r-- 1.8 KB
datetime.h -rw-r--r-- 9.2 KB
descrobject.h -rw-r--r-- 3.1 KB
dictobject.h -rw-r--r-- 7.2 KB
dtoa.h -rw-r--r-- 458 bytes
dynamic_annotations.h -rw-r--r-- 21.9 KB
enumobject.h -rw-r--r-- 253 bytes
errcode.h -rw-r--r-- 1.7 KB
eval.h -rw-r--r-- 1.1 KB
fileobject.h -rw-r--r-- 1.7 KB
fileutils.h -rw-r--r-- 2.4 KB
floatobject.h -rw-r--r-- 4.7 KB
frameobject.h -rw-r--r-- 3.2 KB
funcobject.h -rw-r--r-- 4.1 KB
genobject.h -rw-r--r-- 3.5 KB
graminit.h -rw-r--r-- 1.9 KB
grammar.h -rw-r--r-- 2.3 KB
import.h -rw-r--r-- 4.9 KB
intrcheck.h -rw-r--r-- 791 bytes
iterobject.h -rw-r--r-- 567 bytes
listobject.h -rw-r--r-- 2.9 KB
longintrepr.h -rw-r--r-- 3.7 KB
longobject.h -rw-r--r-- 8.4 KB
marshal.h -rw-r--r-- 803 bytes
memoryobject.h -rw-r--r-- 2.7 KB
metagrammar.h -rw-r--r-- 253 bytes
methodobject.h -rw-r--r-- 4.4 KB
modsupport.h -rw-r--r-- 8.3 KB
moduleobject.h -rw-r--r-- 2.2 KB
namespaceobject.h -rw-r--r-- 349 bytes
node.h -rw-r--r-- 1.1 KB
object.h -rw-r--r-- 40.3 KB
objimpl.h -rw-r--r-- 13.9 KB
odictobject.h -rw-r--r-- 1.3 KB
opcode.h -rw-r--r-- 5.0 KB
osdefs.h -rw-r--r-- 691 bytes
osmodule.h -rw-r--r-- 291 bytes
parsetok.h -rw-r--r-- 2.8 KB
patchlevel.h -rw-r--r-- 1.3 KB
pgen.h -rw-r--r-- 253 bytes
pgenheaders.h -rw-r--r-- 1.2 KB
py_curses.h -rw-r--r-- 4.1 KB
pyarena.h -rw-r--r-- 2.7 KB
pyatomic.h -rw-r--r-- 15.7 KB
pycapsule.h -rw-r--r-- 1.7 KB
pyctype.h -rw-r--r-- 1.3 KB
pydebug.h -rw-r--r-- 1.2 KB
pydtrace.d -rw-r--r-- 969 bytes
pydtrace.h -rw-r--r-- 2.2 KB
pyerrors.h -rw-r--r-- 17.0 KB
pyexpat.h -rw-r--r-- 2.3 KB
pyfpe.h -rw-r--r-- 8.3 KB
pygetopt.h -rw-r--r-- 410 bytes
pyhash.h -rw-r--r-- 4.0 KB
pylifecycle.h -rw-r--r-- 6.0 KB
pymacconfig.h -rw-r--r-- 2.9 KB
pymacro.h -rw-r--r-- 3.5 KB
pymath.h -rw-r--r-- 8.1 KB
pymem.h -rw-r--r-- 8.8 KB
pyport.h -rw-r--r-- 27.9 KB
pystate.h -rw-r--r-- 13.4 KB
pystrcmp.h -rw-r--r-- 436 bytes
pystrhex.h -rw-r--r-- 495 bytes
pystrtod.h -rw-r--r-- 1.4 KB
pythonrun.h -rw-r--r-- 6.1 KB
pythread.h -rw-r--r-- 5.2 KB
pytime.h -rw-r--r-- 8.7 KB
rangeobject.h -rw-r--r-- 629 bytes
setobject.h -rw-r--r-- 3.3 KB
sliceobject.h -rw-r--r-- 2.4 KB
structmember.h -rw-r--r-- 2.0 KB
structseq.h -rw-r--r-- 1.3 KB
symtable.h -rw-r--r-- 4.9 KB
sysmodule.h -rw-r--r-- 1.5 KB
token.h -rw-r--r-- 2.4 KB
traceback.h -rw-r--r-- 3.6 KB
tupleobject.h -rw-r--r-- 2.4 KB
typeslots.h -rw-r--r-- 2.2 KB
ucnhash.h -rw-r--r-- 1.0 KB
unicodeobject.h -rw-r--r-- 80.3 KB
warnings.h -rw-r--r-- 1.8 KB
weakrefobject.h -rw-r--r-- 2.8 KB

back to top