|
Lines 161-167
Link Here
|
| 161 |
|
161 |
|
| 162 |
protected void formatIndentationAfterNode(IDOMNode node, IStructuredFormatContraints formatContraints) { |
162 |
protected void formatIndentationAfterNode(IDOMNode node, IStructuredFormatContraints formatContraints) { |
| 163 |
// [111674] If inside xml:space="preserve" element, we bail |
163 |
// [111674] If inside xml:space="preserve" element, we bail |
| 164 |
if (formatContraints.getInPreserveSpaceElement()) return; |
164 |
if (formatContraints.getInPreserveSpaceElement()) |
|
|
165 |
return; |
| 165 |
if (node != null) { |
166 |
if (node != null) { |
| 166 |
IDOMNode nextSibling = (IDOMNode) node.getNextSibling(); |
167 |
IDOMNode nextSibling = (IDOMNode) node.getNextSibling(); |
| 167 |
IStructuredDocument doc = node.getModel().getStructuredDocument(); |
168 |
IStructuredDocument doc = node.getModel().getStructuredDocument(); |
|
Lines 169-181
Link Here
|
| 169 |
String lineDelimiter = doc.getLineDelimiter(); |
170 |
String lineDelimiter = doc.getLineDelimiter(); |
| 170 |
try { |
171 |
try { |
| 171 |
lineDelimiter = doc.getLineDelimiter(line); |
172 |
lineDelimiter = doc.getLineDelimiter(line); |
| 172 |
if (lineDelimiter == null) |
|
|
| 173 |
lineDelimiter = ""; //$NON-NLS-1$ |
| 174 |
} |
173 |
} |
| 175 |
catch (BadLocationException e) { |
174 |
catch (BadLocationException e) { |
| 176 |
// log for now, unless we find reason not to |
175 |
// log for now, unless we find reason not to |
| 177 |
Logger.log(Logger.INFO, e.getMessage()); |
176 |
Logger.log(Logger.INFO, e.getMessage()); |
| 178 |
} |
177 |
} |
|
|
178 |
// BUG115716: if cannot get line delimiter from current line, just |
| 179 |
// use default line delimiter |
| 180 |
if (lineDelimiter == null) |
| 181 |
lineDelimiter = doc.getLineDelimiter(); |
| 179 |
|
182 |
|
| 180 |
if (node.getParentNode() != null) { |
183 |
if (node.getParentNode() != null) { |
| 181 |
if (node.getParentNode().getNodeType() == Node.DOCUMENT_NODE) |
184 |
if (node.getParentNode().getNodeType() == Node.DOCUMENT_NODE) |
|
Lines 232-239
Link Here
|
| 232 |
insertAfterNode(lastChild, lineDelimiter + lineIndent); |
235 |
insertAfterNode(lastChild, lineDelimiter + lineIndent); |
| 233 |
} |
236 |
} |
| 234 |
else { |
237 |
else { |
| 235 |
// append indentation |
238 |
// as long as not at the end of the document |
| 236 |
insertAfterNode(lastChild, lineDelimiter + lineIndent); |
239 |
IStructuredDocumentRegion endRegion = node.getLastStructuredDocumentRegion(); |
|
|
240 |
if (endRegion != null && endRegion.getNext() != null) |
| 241 |
// append indentation |
| 242 |
insertAfterNode(lastChild, lineDelimiter + lineIndent); |
| 237 |
} |
243 |
} |
| 238 |
} |
244 |
} |
| 239 |
} |
245 |
} |
|
Lines 243-249
Link Here
|
| 243 |
|
249 |
|
| 244 |
protected void formatIndentationBeforeNode(IDOMNode node, IStructuredFormatContraints formatContraints) { |
250 |
protected void formatIndentationBeforeNode(IDOMNode node, IStructuredFormatContraints formatContraints) { |
| 245 |
// [111674] If inside xml:space="preserve" element, we bail |
251 |
// [111674] If inside xml:space="preserve" element, we bail |
| 246 |
if (formatContraints.getInPreserveSpaceElement()) return; |
252 |
if (formatContraints.getInPreserveSpaceElement()) |
|
|
253 |
return; |
| 247 |
if (node != null) { |
254 |
if (node != null) { |
| 248 |
IDOMNode previousSibling = (IDOMNode) node.getPreviousSibling(); |
255 |
IDOMNode previousSibling = (IDOMNode) node.getPreviousSibling(); |
| 249 |
IStructuredDocument doc = node.getModel().getStructuredDocument(); |
256 |
IStructuredDocument doc = node.getModel().getStructuredDocument(); |
|
Lines 252-265
Link Here
|
| 252 |
try { |
259 |
try { |
| 253 |
if (line > 0) { |
260 |
if (line > 0) { |
| 254 |
lineDelimiter = doc.getLineDelimiter(line - 1); |
261 |
lineDelimiter = doc.getLineDelimiter(line - 1); |
| 255 |
if (lineDelimiter == null) |
|
|
| 256 |
lineDelimiter = ""; //$NON-NLS-1$ |
| 257 |
} |
262 |
} |
| 258 |
} |
263 |
} |
| 259 |
catch (BadLocationException e) { |
264 |
catch (BadLocationException e) { |
| 260 |
// log for now, unless we find reason not to |
265 |
// log for now, unless we find reason not to |
| 261 |
Logger.log(Logger.INFO, e.getMessage()); |
266 |
Logger.log(Logger.INFO, e.getMessage()); |
| 262 |
} |
267 |
} |
|
|
268 |
// BUG115716: if cannot get line delimiter from current line, just |
| 269 |
// use default line delimiter |
| 270 |
if (lineDelimiter == null) |
| 271 |
lineDelimiter = doc.getLineDelimiter(); |
| 263 |
String lineIndent = formatContraints.getCurrentIndent(); |
272 |
String lineIndent = formatContraints.getCurrentIndent(); |
| 264 |
|
273 |
|
| 265 |
if (node.getParentNode() != null) { |
274 |
if (node.getParentNode() != null) { |
|
Lines 328-334
Link Here
|
| 328 |
*/ |
337 |
*/ |
| 329 |
protected void formatTrailingText(IDOMNode node, IStructuredFormatContraints formatContraints) { |
338 |
protected void formatTrailingText(IDOMNode node, IStructuredFormatContraints formatContraints) { |
| 330 |
// [111674] If inside xml:space="preserve" element, we bail |
339 |
// [111674] If inside xml:space="preserve" element, we bail |
| 331 |
if (formatContraints.getInPreserveSpaceElement()) return; |
340 |
if (formatContraints.getInPreserveSpaceElement()) |
|
|
341 |
return; |
| 332 |
|
342 |
|
| 333 |
String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter(); |
343 |
String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter(); |
| 334 |
String lineIndent = formatContraints.getCurrentIndent(); |
344 |
String lineIndent = formatContraints.getCurrentIndent(); |