summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 9bacbadaad403452ac9f295b30836d22c89d533c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
2016-07-24 v0.5.2
	* Move annotations from the `RdrName` to `HsVar` and `PatVar` for
	consistency.

2016-06-03 v0.5.1.1
	* Fix haddocks for GHC 8.0 (@phadej)
	* Add test files for ghc710-only to dist tarball (#41)
2016-06-02 v0.5.1.0
	* Support for GHC 8.0.1
	* Add graftT to the Transform module, courtesy of @xich
	* Add semi-pure parsing function, courtesy of @lspitzner
2015-12-13 v0.5.0.1
	* Fix a bug (#34) where quasiquote values would not roundtrip.

2015-11-21 v0.5
	* Add new options to enable "rigid" layout rules. This makes the
	annotations more rigid in the sense that if you move AST fragments around
	it is more likely that their internal components will remain in the same
	position relative to each other.

	* Fix a bug where files failed to parse if the file started with comments.

	* Fix a bug where "[e||" was turned into "[||"


2015-11-15 v0.4.2
	* Fix round tripping of arrow notation using ">-" and ">>-".
2015-09-28 v0.4.1
	* Revert removing cast from markLocated until further inspection in HaRe.
2015-09-28 v0.4.0.0
	* Rework HasDecls so that there are only instances for which it is
	idempotent. Provide functions for managing an LHsBind which is not
	idempotent, and performing general transformations on an AST
	including FunBinds.
	* Manage LHsDecl instances so that the Annotation always attaches
	to the wrapped item, so that they can be seamlessly used in a top
	level (wrapped) or local (unwrapped) context.
	* Tweak transformations based on HaRe integration.
	* This release supports the HaRe 8.0 release, which finally works
	with GHC 7.10.2
	* Rename `exactPrintWithAnns` to `exactPrint`. This will possibly
	break earlier client libraries, but is a simple rename.
	* Bring in semanticPrintM which allows wrapper functions to be
	provided for the generated output, for use when emitting e.g. HTML
	marked up source.

2015-08-13 v0.3.1.1
	* Add missing test files to sdist, closes #23

2015-08-02 v0.3.1

	* Mark LHS at the beginning of HsCase and HsIf expressions
	* Mark trailing semi colons on ANN pragmas
	* Correctly mark trailing semi colons distinctly from internal semicolons
	* setPrecedingLinesDecl applies the setting to both the Decl and
	  the item wrapped in the Decl.


2015-07-20 v0.3
	Substantial rework to manage changes introduced in GHC 7.10.2 rc2
	and beyond.

	Simplification of the core Annotation data type coupled with
	simplification of the various phases, by @mpickering.

	Introduction of initial Transform functions, driven by the needs
	of HaRe [1] and apply-refact [2] for applying hlint hints. Both of
	these are currently works in progress, and this module is likely
	to change substantially in future releases.

	Support for processing files making use of CPP.

	Links
	[1] https://github.com/alanz/HaRe/tree/wip
	[2] https://github.com/mpickering/apply-refact

2015-03-24 v0.2
	This release contains a major rewrite of all internal modules.

	The external interface has also changed significantly. A description is
	omitted.

	# Top-level changes
	The most notable change is that the common structor of the modules known as
	`ExactPrint` and `Annotate` has been factored out into a common module
	(`Annotate`). The aforementioned modules are now known as `Delta` and
	`Print` and contain functions to interpret this common structure.

	The top level module `ExactPrint` now just reexports a consistent interface
	from the base modules.

	Introduced a new module `Lookup` which contains a mapping from AnnKeywordId
	to their String representation.

	# Internal Changes

	`Annotate` contains all the information about which annotations appear on
	each AST element. This is achieved by building up a syntax tree (using a
	free monad) which can then be interpreted by programs requiring access to
	this information.

	# Layout compensation

	The method which compensates for layout rules has been clarified.

		1. When the Layout Flag is activated in `Annotate`, we mark
	the current column as the start of the layout block.

		2. This is important when we move to a new line. We take the offset at
		that current point to be the baseline and calculate the correct next
		position based on this.

		3. This method is very general as one can think of a entire source file as
		obeying layout rules where the offset is equal to zero.


2015-03-11 v0.1.1.0
	Handles indentation when the AST is edited
	Major rework of internal monads by @mpickering
2015-01-28 v0.1.0.1
	Update cabal to prevent building with GHC 7.70,thanks @peti
2015-01-24 v0.1.0.0
	Initial release, for GHC 7.10 RC 2