Skip to content

Commit f7d5ba3

Browse files
committed
#3467 lsp: move settings to new page
Signed-off-by: Patrizio Bekerle <patrizio@bekerle.com>
1 parent 354b09b commit f7d5ba3

12 files changed

Lines changed: 274 additions & 118 deletions

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
from being applied when a note filename contains spaces; the incoming LSP URI
77
(e.g. `Top%20heading.md`) is now decoded with `QUrl::fromPercentEncoding`
88
before being compared to the stored document URI so wave-underlines appear
9-
correctly for notes with spaces in their name
10-
(for [#3467](https://github.com/pbek/QOwnNotes/issues/3467))
9+
correctly for notes with spaces in their name (for [#3467](https://github.com/pbek/QOwnNotes/issues/3467))
1110
- Added an inline **Markdown LSP diagnostic context menu** section that appears
1211
when right-clicking on a wave-underlined region in the note editor; it shows
1312
the diagnostic message as a header and fetches available LSP code actions
@@ -26,6 +25,9 @@
2625
diagnostics arrive from the server, blocks that previously had diagnostics
2726
are now also rehighlighted so their old underlines are cleared
2827
(for [#3467](https://github.com/pbek/QOwnNotes/issues/3467))
28+
- Moved the Markdown LSP configuration out of the **Editor** settings into its
29+
own **Markdown LSP** settings page to make the language-server options easier
30+
to find and manage (for [#3467](https://github.com/pbek/QOwnNotes/issues/3467))
2931

3032
## 26.4.23
3133

src/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,9 @@ set(SOURCE_FILES
502502
widgets/settings/harpersettingswidget.cpp
503503
widgets/settings/harpersettingswidget.h
504504
widgets/settings/harpersettingswidget.ui
505+
widgets/settings/markdownlspsettingswidget.cpp
506+
widgets/settings/markdownlspsettingswidget.h
507+
widgets/settings/markdownlspsettingswidget.ui
505508
widgets/settings/networksettingswidget.cpp
506509
widgets/settings/networksettingswidget.h
507510
widgets/settings/networksettingswidget.ui

src/QOwnNotes.pro

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ SOURCES += main.cpp\
244244
widgets/settings/debugsettingswidget.cpp \
245245
widgets/settings/languagetoolsettingswidget.cpp \
246246
widgets/settings/harpersettingswidget.cpp \
247+
widgets/settings/markdownlspsettingswidget.cpp \
247248
widgets/settings/networksettingswidget.cpp \
248249
widgets/settings/owncloudsettingswidget.cpp \
249250
widgets/settings/todosettingswidget.cpp \
@@ -411,6 +412,7 @@ HEADERS += mainwindow.h \
411412
widgets/settings/debugsettingswidget.h \
412413
widgets/settings/languagetoolsettingswidget.h \
413414
widgets/settings/harpersettingswidget.h \
415+
widgets/settings/markdownlspsettingswidget.h \
414416
widgets/settings/networksettingswidget.h \
415417
widgets/settings/owncloudsettingswidget.h \
416418
widgets/settings/todosettingswidget.h \
@@ -495,6 +497,7 @@ FORMS += mainwindow.ui \
495497
widgets/settings/debugsettingswidget.ui \
496498
widgets/settings/languagetoolsettingswidget.ui \
497499
widgets/settings/harpersettingswidget.ui \
500+
widgets/settings/markdownlspsettingswidget.ui \
498501
widgets/settings/networksettingswidget.ui \
499502
widgets/settings/owncloudsettingswidget.ui \
500503
widgets/settings/todosettingswidget.ui \

src/dialogs/settingsdialog.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
#include "widgets/settings/editorsettingswidget.h"
6565
#include "widgets/settings/harpersettingswidget.h"
6666
#include "widgets/settings/languagetoolsettingswidget.h"
67+
#include "widgets/settings/markdownlspsettingswidget.h"
6768
#include "widgets/settings/networksettingswidget.h"
6869
#include "widgets/settings/owncloudsettingswidget.h"
6970
#include "widgets/settings/todosettingswidget.h"
@@ -310,6 +311,7 @@ void SettingsDialog::storeSettings() {
310311
ui->editorSettingsWidget->storeSettings();
311312
ui->languageToolSettingsWidget->storeSettings();
312313
ui->harperSettingsWidget->storeSettings();
314+
ui->markdownLspSettingsWidget->storeSettings();
313315

314316
ui->networkSettingsWidget->storeSettings();
315317

@@ -374,6 +376,7 @@ void SettingsDialog::readSettings() {
374376
ui->editorSettingsWidget->readSettings();
375377
ui->languageToolSettingsWidget->readSettings();
376378
ui->harperSettingsWidget->readSettings();
379+
ui->markdownLspSettingsWidget->readSettings();
377380
ui->networkSettingsWidget->readSettings();
378381
ui->editorFontColorSettingsWidget->readSettings();
379382

@@ -1129,6 +1132,9 @@ bool SettingsDialog::initializePage(int index) {
11291132
case SettingsPages::McpServerPage: {
11301133
ui->mcpServerSettingsWidget->initialize();
11311134
} break;
1135+
case SettingsPages::MarkdownLspPage: {
1136+
ui->markdownLspSettingsWidget->initialize();
1137+
} break;
11321138
default:
11331139
break;
11341140
}

src/dialogs/settingsdialog.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ class SettingsDialog : public MasterDialog {
7474
LanguageToolPage,
7575
HarperPage,
7676
ColorModesPage,
77-
McpServerPage
77+
McpServerPage,
78+
MarkdownLspPage
7879
};
7980

8081
explicit SettingsDialog(int page = 0, QWidget *parent = 0);

src/dialogs/settingsdialog.ui

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,22 @@
242242
</property>
243243
<property name="icon">
244244
<iconset theme="tools-check-spelling" resource="../breeze-qownnotes.qrc">
245-
<normaloff>:/icons/breeze-qownnotes/16x16/tools-check-spelling.svg</normaloff>:/icons/breeze-qownnotes/16x16/tools-check-spelling.svg</iconset>
245+
<normaloff>:/icons/breeze-qownnotes/16x16/tools-check-spelling.svg</normaloff>:/icons/breeze-qownnotes/16x16/tools-check-spelling.svg</iconset>
246246
</property>
247247
</item>
248-
</item>
248+
<item>
249+
<property name="text">
250+
<string>Markdown LSP</string>
251+
</property>
252+
<property name="whatsThis">
253+
<string notr="true">27</string>
254+
</property>
255+
<property name="icon">
256+
<iconset theme="text-x-markdown" resource="../breeze-qownnotes.qrc">
257+
<normaloff>:/icons/breeze-qownnotes/16x16/text-x-markdown.svg</normaloff>:/icons/breeze-qownnotes/16x16/text-x-markdown.svg</iconset>
258+
</property>
259+
</item>
260+
</item>
249261
<item>
250262
<property name="text">
251263
<string>Panels</string>
@@ -1144,6 +1156,25 @@ li.checked::marker { content: &quot;\2612&quot;; }
11441156
</item>
11451157
</layout>
11461158
</widget>
1159+
<widget class="QWidget" name="markdownLspPage">
1160+
<layout class="QVBoxLayout" name="markdownLspPageLayout">
1161+
<property name="leftMargin">
1162+
<number>0</number>
1163+
</property>
1164+
<property name="topMargin">
1165+
<number>0</number>
1166+
</property>
1167+
<property name="rightMargin">
1168+
<number>0</number>
1169+
</property>
1170+
<property name="bottomMargin">
1171+
<number>0</number>
1172+
</property>
1173+
<item>
1174+
<widget class="MarkdownLspSettingsWidget" name="markdownLspSettingsWidget" native="true"/>
1175+
</item>
1176+
</layout>
1177+
</widget>
11471178
</widget>
11481179
</item>
11491180
</layout>
@@ -1311,8 +1342,14 @@ li.checked::marker { content: &quot;\2612&quot;; }
13111342
<container>1</container>
13121343
</customwidget>
13131344
<customwidget>
1314-
<class>NoteFolderSettingsWidget</class>
1345+
<class>MarkdownLspSettingsWidget</class>
13151346
<extends>QWidget</extends>
1347+
<header location="global">widgets/settings/markdownlspsettingswidget.h</header>
1348+
<container>1</container>
1349+
</customwidget>
1350+
<customwidget>
1351+
<class>NoteFolderSettingsWidget</class>
1352+
<extends>QWidget</extends>
13161353
<header location="global">widgets/settings/notefoldersettingswidget.h</header>
13171354
<container>1</container>
13181355
</customwidget>

src/widgets/settings/editorsettingswidget.cpp

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
#include "editorsettingswidget.h"
1616

17-
#include <QRegularExpression>
1817
#include <QSignalBlocker>
1918

2019
#include "services/settingsservice.h"
@@ -82,19 +81,6 @@ void EditorSettingsWidget::readSettings() {
8281
ui->useTabIndentCheckBox->setChecked(
8382
settings.value(QStringLiteral("Editor/useTabIndent")).toBool());
8483
ui->indentSizeSpinBox->setValue(Utils::Misc::indentSize());
85-
ui->markdownLspEnabledCheckBox->setChecked(
86-
settings.value(QStringLiteral("Editor/markdownLspEnabled"), false).toBool());
87-
ui->markdownLspCommandLineEdit->setText(
88-
settings.value(QStringLiteral("Editor/markdownLspCommand"), QStringLiteral("marksman"))
89-
.toString());
90-
ui->markdownLspArgumentsLineEdit->setText(
91-
settings.value(QStringLiteral("Editor/markdownLspArguments"))
92-
.toStringList()
93-
.join(QLatin1Char(' ')));
94-
ui->markdownLspVerboseLoggingCheckBox->setChecked(
95-
settings.value(QStringLiteral("Editor/markdownLspVerboseLogging"), false).toBool());
96-
// Initialize dependent widget state for LSP fields
97-
on_markdownLspEnabledCheckBox_toggled(ui->markdownLspEnabledCheckBox->isChecked());
9884
ui->cursorWidthSpinBox->setValue(settings.value(QStringLiteral("cursorWidth"), 1).toInt());
9985
ui->timeFormatLineEdit->setText(settings.value(QStringLiteral("insertTimeFormat")).toString());
10086
}
@@ -138,19 +124,6 @@ void EditorSettingsWidget::storeSettings() {
138124
ui->disableCursorBlinkingCheckBox->isChecked());
139125
settings.setValue(QStringLiteral("Editor/useTabIndent"), ui->useTabIndentCheckBox->isChecked());
140126
settings.setValue(QStringLiteral("Editor/indentSize"), ui->indentSizeSpinBox->value());
141-
settings.setValue(QStringLiteral("Editor/markdownLspEnabled"),
142-
ui->markdownLspEnabledCheckBox->isChecked());
143-
settings.setValue(QStringLiteral("Editor/markdownLspCommand"),
144-
ui->markdownLspCommandLineEdit->text().trimmed());
145-
settings.setValue(QStringLiteral("Editor/markdownLspArguments"),
146-
ui->markdownLspArgumentsLineEdit->text().split(
147-
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0))
148-
QRegularExpression(QStringLiteral("\\s+")), QString::SkipEmptyParts));
149-
#else
150-
QRegularExpression(QStringLiteral("\\s+")), Qt::SkipEmptyParts));
151-
#endif
152-
settings.setValue(QStringLiteral("Editor/markdownLspVerboseLogging"),
153-
ui->markdownLspVerboseLoggingCheckBox->isChecked());
154127
settings.setValue(QStringLiteral("cursorWidth"), ui->cursorWidthSpinBox->value());
155128
settings.setValue(QStringLiteral("insertTimeFormat"), ui->timeFormatLineEdit->text());
156129
}
@@ -169,17 +142,6 @@ void EditorSettingsWidget::on_markdownHighlightingCheckBox_toggled(bool checked)
169142
ui->fullyHighlightedBlockquotesCheckBox->setEnabled(checked);
170143
}
171144

172-
/**
173-
* Enables or disables the LSP command, arguments fields and their labels
174-
*/
175-
void EditorSettingsWidget::on_markdownLspEnabledCheckBox_toggled(bool checked) {
176-
ui->markdownLspCommandLineEdit->setEnabled(checked);
177-
ui->markdownLspArgumentsLineEdit->setEnabled(checked);
178-
ui->markdownLspCommandLabel->setEnabled(checked);
179-
ui->markdownLspArgumentsLabel->setEnabled(checked);
180-
ui->markdownLspVerboseLoggingCheckBox->setEnabled(checked);
181-
}
182-
183145
/**
184146
* Enables or disables the wiki link filename auto-select checkbox and emits
185147
* a cross-page signal so the editor font color widget can update its visibility

src/widgets/settings/editorsettingswidget.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ class EditorSettingsWidget : public QWidget {
3838
private slots:
3939
void on_cursorWidthResetButton_clicked();
4040
void on_markdownHighlightingCheckBox_toggled(bool checked);
41-
void on_markdownLspEnabledCheckBox_toggled(bool checked);
4241
void on_enableWikiLinkSupportCheckBox_toggled(bool checked);
4342
void on_showLineNumbersInEditorCheckBox_toggled(bool checked);
4443
void on_editorWidthInDFMOnlyCheckBox_toggled(bool checked);

src/widgets/settings/editorsettingswidget.ui

Lines changed: 4 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -259,77 +259,8 @@
259259
</layout>
260260
</widget>
261261
</item>
262-
<item row="3" column="0">
263-
<widget class="QGroupBox" name="markdownLspGroupBox">
264-
<property name="title">
265-
<string>Markdown language server</string>
266-
</property>
267-
<layout class="QGridLayout" name="gridLayout_94">
268-
<item row="0" column="0" colspan="2">
269-
<widget class="QCheckBox" name="markdownLspEnabledCheckBox">
270-
<property name="text">
271-
<string>Enable Markdown language server (LSP)</string>
272-
</property>
273-
</widget>
274-
</item>
275-
<item row="1" column="0">
276-
<widget class="QLabel" name="markdownLspCommandLabel">
277-
<property name="text">
278-
<string>Command:</string>
279-
</property>
280-
<property name="alignment">
281-
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
282-
</property>
283-
</widget>
284-
</item>
285-
<item row="1" column="1">
286-
<widget class="QLineEdit" name="markdownLspCommandLineEdit">
287-
<property name="placeholderText">
288-
<string notr="true">marksman</string>
289-
</property>
290-
<property name="clearButtonEnabled">
291-
<bool>true</bool>
292-
</property>
293-
</widget>
294-
</item>
295-
<item row="2" column="0">
296-
<widget class="QLabel" name="markdownLspArgumentsLabel">
297-
<property name="text">
298-
<string>Arguments:</string>
299-
</property>
300-
<property name="alignment">
301-
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
302-
</property>
303-
</widget>
304-
</item>
305-
<item row="2" column="1">
306-
<widget class="QLineEdit" name="markdownLspArgumentsLineEdit">
307-
<property name="toolTip">
308-
<string>Optional arguments separated by spaces.</string>
309-
</property>
310-
<property name="placeholderText">
311-
<string>Optional arguments</string>
312-
</property>
313-
<property name="clearButtonEnabled">
314-
<bool>true</bool>
315-
</property>
316-
</widget>
317-
</item>
318-
<item row="3" column="0" colspan="2">
319-
<widget class="QCheckBox" name="markdownLspVerboseLoggingCheckBox">
320-
<property name="toolTip">
321-
<string>Log all LSP server output (stderr) to the debug log. Useful for troubleshooting LSP server issues.</string>
322-
</property>
323-
<property name="text">
324-
<string>Show all LSP server log output in debug log</string>
325-
</property>
326-
</widget>
327-
</item>
328-
</layout>
329-
</widget>
330-
</item>
331-
<item row="4" column="0">
332-
<widget class="QGroupBox" name="groupBox_21">
262+
<item row="3" column="0">
263+
<widget class="QGroupBox" name="groupBox_21">
333264
<property name="toolTip">
334265
<string>Here you can set your own time format for inserting the current time into a note.</string>
335266
</property>
@@ -367,8 +298,8 @@
367298
</layout>
368299
</widget>
369300
</item>
370-
<item row="5" column="0">
371-
<spacer name="verticalSpacer_12">
301+
<item row="4" column="0">
302+
<spacer name="verticalSpacer_12">
372303
<property name="orientation">
373304
<enum>Qt::Vertical</enum>
374305
</property>

0 commit comments

Comments
 (0)