commit 7b23c76b71cd9259d40f621a21b21c91386cbc41
Author: Yuriy Skalko <[email protected]>
Date: Sun Nov 27 18:30:26 2022 +0200
Add "semantic linefeeds" after punctuation marks.
We already had such breaks for dot.
File format change.
---
development/FORMAT | 4 ++++
lib/lyx2lyx/lyx_2_4.py | 6 ++++--
src/Paragraph.cpp | 26 ++++++++++++++++++++++----
src/version.h | 4 ++--
4 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/development/FORMAT b/development/FORMAT
index 0c41d88..5fcf13e 100644
--- a/development/FORMAT
+++ b/development/FORMAT
@@ -7,6 +7,10 @@ changes happened in particular if possible. A good example
would be
-----------------------
+2022-11-27 Yuriy Skalko <[email protected]>
+ * Format incremented to 611: Implement "semantic linefeeds" after
punctuation marks.
+ Dummy format change for now.
+
2022-10-29 Jürgen Spitzmüller <[email protected]>
* Format incremented to 610: InsetIndexMacros and new IndexInset params:
- \begin_inset IndexMacro [see|seealso|subentry|sortkey], relating to
diff --git a/lib/lyx2lyx/lyx_2_4.py b/lib/lyx2lyx/lyx_2_4.py
index 73826a5..5c0507a 100644
--- a/lib/lyx2lyx/lyx_2_4.py
+++ b/lib/lyx2lyx/lyx_2_4.py
@@ -4621,10 +4621,12 @@ convert = [
[607, []],
[608, []],
[609, []],
- [610, []]
+ [610, []],
+ [611, []]
]
-revert = [[609, [revert_index_macros]],
+revert = [[610, []],
+ [609, [revert_index_macros]],
[608, [revert_document_metadata]],
[607, [revert_docbook_mathml_prefix]],
[606, [revert_spellchecker_ignore]],
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 3b3bc39..453b1e1 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1746,16 +1746,34 @@ void Paragraph::write(ostream & os, BufferParams const
& bparams,
column = 0;
break;
case '.':
+ case '!':
+ case '?':
+ case ':':
+ case ';':
+ case ',':
+ case 0x061F: // ؟ U+061F ARABIC QUESTION MARK
+ case 0x061B: // ؛ U+061B ARABIC SEMICOLON
+ case 0x060C: // ، U+060C ARABIC COMMA
flushString(os, write_buffer);
if (i + 1 < size() && d->text_[i + 1] == ' ') {
- os << ".\n";
+ os << to_utf8(docstring(1, c)) << '\n';
column = 0;
} else
- os << '.';
+ os << to_utf8(docstring(1, c));
+ break;
+ case 0x2014: // — U+2014 EM DASH
+ case 0x3002: // 。 U+3002 IDEOGRAPHIC FULL STOP
+ case 0xFF01: // ! U+FF01 FULLWIDTH EXCLAMATION MARK
+ case 0xFF1F: // ? U+FF1F FULLWIDTH QUESTION MARK
+ case 0xFF1A: // : U+FF1A FULLWIDTH COLON
+ case 0xFF1B: // ; U+FF1B FULLWIDTH SEMICOLON
+ case 0xFF0C: // , U+FF0C FULLWIDTH COMMA
+ flushString(os, write_buffer);
+ os << to_utf8(docstring(1, c)) << '\n';
+ column = 0;
break;
default:
- if ((column > 70 && c == ' ')
- || column > 79) {
+ if (column > 500) {
flushString(os, write_buffer);
os << '\n';
column = 0;
diff --git a/src/version.h b/src/version.h
index b496d10..bfcd986 100644
--- a/src/version.h
+++ b/src/version.h
@@ -32,8 +32,8 @@ extern char const * const lyx_version_info;
// Do not remove the comment below, so we get merge conflict in
// independent branches. Instead add your own.
-#define LYX_FORMAT_LYX 610 // spitz: inset index macros
-#define LYX_FORMAT_TEX2LYX 610
+#define LYX_FORMAT_LYX 611 // Yuriy Skalko: semantic linefeeds
+#define LYX_FORMAT_TEX2LYX 611
#if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
#ifndef _MSC_VER
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs