diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ad5d0211a96..d708e869700 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,9 +7,21 @@ "customizations": { "vscode": { "extensions": [ - "tht13.rst-vscode", - "tomoki1207.pdf" - ] + "lextudio.restructuredtext", + "trond-snekvik.simple-rst", + "streetsidesoftware.code-spell-checker", + "eamodio.gitlens", + "tomoki1207.pdf", + "yzhang.markdown-all-in-one", + "redhat.vscode-yaml" + ], + "settings": { + "editor.rulers": [80], + "editor.wordWrap": "wordWrapColumn", + "editor.wordWrapColumn": 80, + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true + } } }, "postCreateCommand": "python3 -m pip install -r requirements.txt && python3 -m pip install sphinx-autobuild && cd build && composer install --ignore-platform-reqs" diff --git a/.gitignore b/.gitignore index 38330aa3cd0..a60771d242f 100644 --- a/.gitignore +++ b/.gitignore @@ -41,7 +41,7 @@ developer_manual/_static/stoplight-elements.css venv # VScode -.vscode/ +# Note: .vscode/ is intentionally tracked to share recommended settings and extensions *.code-workspace # Sublime Text diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000000..ebe8683ad36 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,22 @@ +{ + "recommendations": [ + // ReStructuredText support + "lextudio.restructuredtext", + "trond-snekvik.simple-rst", + + // Spell checking for documentation + "streetsidesoftware.code-spell-checker", + + // Git integration + "eamodio.gitlens", + + // PDF viewer + "tomoki1207.pdf", + + // Markdown support (for README files) + "yzhang.markdown-all-in-one", + + // YAML support (for devcontainer and other config files) + "redhat.vscode-yaml" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000000..b7fd92aaff6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,40 @@ +{ + // Editor settings for reStructuredText documentation + "editor.rulers": [80], + "editor.wordWrap": "wordWrapColumn", + "editor.wordWrapColumn": 80, + "editor.wrappingIndent": "same", + + // File associations + "files.associations": { + "*.rst": "restructuredtext" + }, + + // Trim trailing whitespace + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true, + + // ReStructuredText specific settings + "[restructuredtext]": { + "editor.wordWrap": "wordWrapColumn", + "editor.wordWrapColumn": 80, + "editor.rulers": [80], + "editor.formatOnSave": false + }, + + // Search exclusions for better performance + "search.exclude": { + "**/_build": true, + "**/venv": true, + "**/.venv": true, + "**/node_modules": true, + "**/*.pdf": true + }, + + // File watcher exclusions + "files.watcherExclude": { + "**/_build/**": true, + "**/venv/**": true, + "**/.venv/**": true + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000000..ca260b01680 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,63 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build All Documentation", + "type": "shell", + "command": "make all", + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + }, + { + "label": "Build HTML Documentation", + "type": "shell", + "command": "make html", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + }, + { + "label": "Build PDF Documentation", + "type": "shell", + "command": "make pdf", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + }, + { + "label": "Auto-build HTML (watch mode)", + "type": "shell", + "command": "make SPHINXBUILD=sphinx-autobuild html", + "isBackground": true, + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + }, + { + "label": "Clean Build", + "type": "shell", + "command": "make clean", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + } + ] +} diff --git a/admin_manual/installation/server_tuning.rst b/admin_manual/installation/server_tuning.rst index 82b1612b7a4..cf2bef8963a 100644 --- a/admin_manual/installation/server_tuning.rst +++ b/admin_manual/installation/server_tuning.rst @@ -2,7 +2,12 @@ Server tuning ============= -.. TODO: Add introductory paragraph +Server tuning helps optimize Nextcloud's performance, responsiveness, and resource utilization. +This guide covers various configuration options and best practices to improve your Nextcloud +server's efficiency. While a default Nextcloud installation works out of the box, implementing +these tuning recommendations can significantly enhance the user experience, especially for +larger deployments or systems with limited resources. + .. TODO: Sort according to (generalized) difficulty .. TODO: Consider adding a category (or even table) with Impact vs Difficulty