MCPcopy Create free account
hub / github.com/dail8859/NotepadNext / doEditorConfig

Method doEditorConfig

src/decorators/EditorConfigAppDecorator.cpp:53–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53void EditorConfigAppDecorator::doEditorConfig(ScintillaNext *editor)
54{
55 if (this->isEnabled()) {
56 if (editor->isFile()) {
57 EditorConfigSettings settings = EditorConfig::getFileSettings(editor->getFilePath());
58
59 qDebug() << "EditorConfig settings for:" << editor->getFilePath();
60 for(auto &setting : settings.toStdMap()) {
61 qDebug() << setting.first << "=" << setting.second;
62 }
63
64 if (settings.contains(QStringLiteral("indent_style"))) {
65 if (settings[QStringLiteral("indent_style")] == QStringLiteral("tab")) editor->setUseTabs(true);
66 else if (settings[QStringLiteral("indent_style")] == QStringLiteral("space")) editor->setUseTabs(false);
67
68 // Set a flag so that the tab/spaces won't get overridden
69 editor->QObject::setProperty("nn_skip_usetabs", "EditorConfig");
70 }
71
72 if (settings.contains(QStringLiteral("indent_size")) && settings[QStringLiteral("indent_size")].toInt() > 0) {
73 editor->setIndent(settings[QStringLiteral("indent_size")].toInt());
74 }
75
76 if (settings.contains(QStringLiteral("tab_width")) && settings[QStringLiteral("tab_width")].toInt() > 0) {
77 editor->setTabWidth(settings[QStringLiteral("tab_width")].toInt());
78
79 // Set a flag so that the tab width won't get overridden
80 editor->QObject::setProperty("nn_skip_tabwidth", "EditorConfig");
81 }
82
83 if (settings.contains(QStringLiteral("end_of_line"))) {
84 if (settings[QStringLiteral("end_of_line")] == QStringLiteral("lf")) editor->setEOLMode(SC_EOL_LF);
85 else if (settings[QStringLiteral("end_of_line")] == QStringLiteral("cr")) editor->setEOLMode(SC_EOL_CR);
86 else if (settings[QStringLiteral("end_of_line")] == QStringLiteral("crlf")) editor->setEOLMode(SC_EOL_CRLF);
87 }
88
89 if (settings.contains(QStringLiteral("trim_trailing_whitespace"))) {
90 if (settings[QStringLiteral("trim_trailing_whitespace")] == QStringLiteral("true")) {
91 connect(editor, &ScintillaNext::aboutToSave, this, &EditorConfigAppDecorator::trimTrailingWhitespace);
92 }
93 }
94
95 if (settings.contains(QStringLiteral("insert_final_newline"))) {
96 if (settings[QStringLiteral("insert_final_newline")] == QStringLiteral("true")) {
97 connect(editor, &ScintillaNext::aboutToSave, this, &EditorConfigAppDecorator::ensureFinalNewline);
98 }
99 else if (settings[QStringLiteral("insert_final_newline")] == QStringLiteral("false")) {
100 connect(editor, &ScintillaNext::aboutToSave, this, &EditorConfigAppDecorator::ensureNoFinalNewline);
101 }
102 }
103 }
104 }
105}
106
107void EditorConfigAppDecorator::trimTrailingWhitespace()
108{

Callers

nothing calls this directly

Calls 3

isFileMethod · 0.80
getFilePathMethod · 0.80
isEnabledMethod · 0.45

Tested by

no test coverage detected