diff --git a/src/dialogs/katedialogs.cpp b/src/dialogs/katedialogs.cpp
--- a/src/dialogs/katedialogs.cpp
+++ b/src/dialogs/katedialogs.cpp
@@ -703,6 +703,7 @@
reload();
observeChanges(textareaUi->chkAnimateBracketMatching);
+ observeChanges(textareaUi->chkDynWrapAnywhere);
observeChanges(textareaUi->chkDynWrapAtStaticMarker);
observeChanges(textareaUi->chkFoldFirstLine);
observeChanges(textareaUi->chkShowIndentationLines);
@@ -762,6 +763,7 @@
KateViewConfig::global()->setValue(KateViewConfig::BookmarkSorting, bordersUi->rbSortBookmarksByPosition->isChecked() ? 0 : 1);
KateViewConfig::global()->setValue(KateViewConfig::DynWordWrapAlignIndent, textareaUi->sbDynamicWordWrapDepth->value());
KateViewConfig::global()->setValue(KateViewConfig::DynWordWrapIndicators, textareaUi->cmbDynamicWordWrapIndicator->currentIndex());
+ KateViewConfig::global()->setValue(KateViewConfig::DynWrapAnywhere, textareaUi->chkDynWrapAnywhere->isChecked());
KateViewConfig::global()->setValue(KateViewConfig::DynWrapAtStaticMarker, textareaUi->chkDynWrapAtStaticMarker->isChecked());
KateViewConfig::global()->setValue(KateViewConfig::FoldFirstLine, textareaUi->chkFoldFirstLine->isChecked());
KateViewConfig::global()->setValue(KateViewConfig::ScrollBarMiniMapWidth, bordersUi->spBoxMiniMapWidth->value());
@@ -798,6 +800,7 @@
bordersUi->spBoxMiniMapWidth->setValue(KateViewConfig::global()->scrollBarMiniMapWidth());
textareaUi->chkAnimateBracketMatching->setChecked(KateRendererConfig::global()->animateBracketMatching());
+ textareaUi->chkDynWrapAnywhere->setChecked(KateViewConfig::global()->dynWrapAnywhere());
textareaUi->chkDynWrapAtStaticMarker->setChecked(KateViewConfig::global()->dynWrapAtStaticMarker());
textareaUi->chkFoldFirstLine->setChecked(KateViewConfig::global()->foldFirstLine());
textareaUi->chkShowIndentationLines->setChecked(KateRendererConfig::global()->showIndentationLines());
diff --git a/src/dialogs/textareaappearanceconfigwidget.ui b/src/dialogs/textareaappearanceconfigwidget.ui
--- a/src/dialogs/textareaappearanceconfigwidget.ui
+++ b/src/dialogs/textareaappearanceconfigwidget.ui
@@ -30,6 +30,13 @@
+ -
+
+
+ Disregard word boundaries for dynamic wrapping
+
+
+
-
@@ -55,7 +62,7 @@
-
- Dynamic word wrap &indicators (if applicable):
+ D&ynamic word wrap indicators (if applicable):
cmbDynamicWordWrapIndicator
diff --git a/src/render/katerenderer.cpp b/src/render/katerenderer.cpp
--- a/src/render/katerenderer.cpp
+++ b/src/render/katerenderer.cpp
@@ -1018,7 +1018,11 @@
QTextOption opt;
opt.setFlags(QTextOption::IncludeTrailingSpaces);
opt.setTabStopDistance(m_tabWidth * m_fontMetrics.horizontalAdvance(spaceChar));
- opt.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ if (m_view->config()->dynWrapAnywhere()) {
+ opt.setWrapMode(QTextOption::WrapAnywhere);
+ } else {
+ opt.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ }
// Find the first strong character in the string.
// If it is an RTL character, set the base layout direction of the string to RTL.
diff --git a/src/utils/kateconfig.h b/src/utils/kateconfig.h
--- a/src/utils/kateconfig.h
+++ b/src/utils/kateconfig.h
@@ -956,6 +956,7 @@
DefaultMarkType,
DynWordWrapAlignIndent,
DynWordWrapIndicators,
+ DynWrapAnywhere,
DynWrapAtStaticMarker,
DynamicWordWrap,
FoldFirstLine,
@@ -1012,6 +1013,10 @@
{
setValue(DynamicWordWrap, on);
}
+ bool dynWrapAnywhere() const
+ {
+ return value(DynWrapAnywhere).toBool();
+ }
bool dynWrapAtStaticMarker() const
{
diff --git a/src/utils/kateconfig.cpp b/src/utils/kateconfig.cpp
--- a/src/utils/kateconfig.cpp
+++ b/src/utils/kateconfig.cpp
@@ -529,6 +529,7 @@
addConfigEntry(ConfigEntry(DefaultMarkType, "Default Mark Type", QStringLiteral("default-mark-type"), KTextEditor::MarkInterface::markType01, [](const QVariant &value) { return isPositive(value); }));
addConfigEntry(ConfigEntry(DynWordWrapAlignIndent, "Dynamic Word Wrap Align Indent", QString(), 80, [](const QVariant &value) { return inBounds(1, value, 100); }));
addConfigEntry(ConfigEntry(DynWordWrapIndicators, "Dynamic Word Wrap Indicators", QString(), 1, [](const QVariant &value) { return inBounds(1, value, 3); }));
+ addConfigEntry(ConfigEntry(DynWrapAnywhere, "Dynamic Wrap not at word boundaries", QStringLiteral("dynamic-word-wrap-anywhere"), false));
addConfigEntry(ConfigEntry(DynWrapAtStaticMarker, "Dynamic Word Wrap At Static Marker", QString(), false));
addConfigEntry(ConfigEntry(DynamicWordWrap, "Dynamic Word Wrap", QStringLiteral("dynamic-word-wrap"), true));
addConfigEntry(ConfigEntry(FoldFirstLine, "Fold First Line", QString(), false));