diff --git a/.editorconfig b/.editorconfig index 5efe9f4342..a2689e4f62 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,15 +1,12 @@ # EditorConfig root = true -# elementary defaults +# elementary defaults - global indent width and style are set in UI [*] charset = utf-8 end_of_line = lf -indent_size = tab -indent_style = space insert_final_newline = true max_line_length = 80 -tab_width = 4 [{*.xml,*.xml.in,*.yml}] tab_width = 2 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..5ace4600a1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d06b8a1439..6d20ef271b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,22 +10,24 @@ on: jobs: build: runs-on: ubuntu-latest - + strategy: + fail-fast: false + matrix: + version: [stable, unstable, development-target] container: - image: elementary/docker:unstable + image: ghcr.io/elementary/docker:${{ matrix.version }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Dependencies run: | apt update - apt install -y exuberant-ctags libeditorconfig-dev libgail-3-dev libgee-0.8-dev libgit2-glib-1.0-dev libgranite-dev libgtk-3-dev libgtksourceview-4-dev libgtkspell3-3-dev libhandy-1-dev libpeas-dev libsoup2.4-dev libvala-dev libvte-2.91-dev meson valac + apt install -y exuberant-ctags libeditorconfig-dev libgail-3-dev libgee-0.8-dev libgit2-glib-1.0-dev libgranite-dev libgtk-3-dev libgtksourceview-4-dev libgtkspell3-3-dev libhandy-1-dev libpeas-dev libsoup2.4-dev libvala-dev libvte-2.91-dev meson valac polkitd libpolkit-gobject-1-dev - name: Build env: DESTDIR: out run: | meson build - ninja -C build ninja -C build install flatpak: @@ -39,25 +41,24 @@ jobs: fail-fast: false container: - image: ghcr.io/elementary/flatpak-platform/runtime:6-${{ matrix.arch }} + image: ghcr.io/elementary/flatpak-platform/runtime:7.1-${{ matrix.arch }} options: --privileged steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU for aarch64 emulation if: ${{ matrix.arch != 'x86_64' }} - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 with: platforms: arm64 - name: Build - uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4 + uses: flatpak/flatpak-github-actions/flatpak-builder@v6 with: bundle: code.flatpak manifest-path: io.elementary.code.yml - run-tests: true repository-name: appcenter repository-url: https://flatpak.elementary.io/repo.flatpakrepo cache-key: "flatpak-builder-${{ github.sha }}" @@ -72,7 +73,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Lint run: io.elementary.vala-lint -d . diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 8114d0ae19..7800ff902c 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -1,24 +1,29 @@ ---- - -name: Merge +name: Gettext Updates on: push: - branches: - - master + branches: [master] jobs: - gettext: - name: Gettext - runs-on: ubuntu-latest + build: + runs-on: ubuntu-22.04 + container: + image: ghcr.io/elementary/docker:next-unstable steps: - - name: Checkout - uses: actions/checkout@v1 # Avoid an error when pushing + - name: Install git + run: | + apt-get update + apt-get install git -y + + - name: Clone repository + uses: actions/checkout@v3 + with: + token: ${{ secrets.GIT_USER_TOKEN }} - - name: Gettext - uses: elementary/actions/gettext-template@master - env: - GIT_USER_TOKEN: "${{ secrets.GIT_USER_TOKEN }}" - GIT_USER_NAME: "elementaryBot" - GIT_USER_EMAIL: "builds@elementary.io" + - name: Update Translation Files + uses: elementary/actions/gettext-template@next + env: + GIT_USER_TOKEN: ${{ secrets.GIT_USER_TOKEN }} + GIT_USER_NAME: "elementaryBot" + GIT_USER_EMAIL: "builds@elementary.io" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58d6e4bc74..fc7c648857 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,14 +2,14 @@ name: Release on: pull_request: - branches: master - types: closed + branches: [master] + types: [closed] jobs: release: runs-on: ubuntu-latest if: github.event.pull_request.merged == true && true == contains(join(github.event.pull_request.labels.*.name), 'Release') steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - uses: elementary/actions/release@master env: GIT_USER_TOKEN: "${{ secrets.GIT_USER_TOKEN }}" diff --git a/.gitignore b/.gitignore index f57469ffc8..012bdea4ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ build src/config.vala *~ - +.flatpak +.flatpak-builder diff --git a/data/code.metainfo.xml.in b/data/code.metainfo.xml.in new file mode 100644 index 0000000000..d4ded035c5 --- /dev/null +++ b/data/code.metainfo.xml.in @@ -0,0 +1,217 @@ + + + + io.elementary.code + io.elementary.code.desktop + CC0-1.0 + GPL-3.0+ + + Code + The editor that works for you + +

Whether you're writing in Markdown or managing a complex app codebase, Code is the lightweight but full-featured editor for you. It auto-saves your files to ensure they're always up-to-date, and it remembers your tabs so you never lose your spot—even between sessions.

+

Designed around a project-based workflow, Code knows about your separate codebases. It comes with helpful Git integration to create and switch between branches and show changed files and lines within your projects.

+

Work with your language: whether you're crafting code in Vala, scripting with PHP, or marking things up in HTML, Code has you covered. Experience full syntax highlighting with nearly all programming, scripting, and markup languages.

+

Find anything in your current file, specific folders, or your whole project with options for case-sensitivity and regular expressions.

+

Smart features throughout: automatic indentation, smart cut/copy behavior, visible whitespace for selected text and at the end of lines by default, and optional extensions for Markdown actions, spell checking, whitespace trimming, word completion, and more.

+

Adapt Code to your workflow: you can tweak the behavior and interface as needed with a handful of useful and well-considered extensions and preferences.

+

There's a ton more:

+
    +
  • Solarized Light, Solarized Dark, and High Contrast color schemes that affect the whole UI
  • +
  • Togglable sidebar to fit your workflow
  • +
  • Smart indentation and .editorconfig support
  • +
  • Browser-class tabs with drag-and-drop, duplication, undo closing, and tab history
  • +
  • Display the current line and character—and quickly jump to a new line
  • +
  • Scroll past the end of the file so you can keep the current line where it's comfortable
  • +
  • Optional mini-map to make navigating large files easier
  • +
+
+ + + + https://raw.githubusercontent.com/elementary/code/7.1.0/data/screenshot.png + + + https://raw.githubusercontent.com/elementary/code/7.1.0/data/screenshot-dark.png + + + + + #cfa25e + + + + + + io.elementary.code + + + + 604 + + + pointing + keyboard + touch + + + https://elementary.io/ + https://github.com/elementary/code/issues + https://elementary.io/get-involved#funding + https://github.com/elementary/code/discussions/categories/q-a + https://l10n.elementary.io/projects/code + + elementary, Inc. + elementary + contact_AT_elementary.io + + + + +

Improvements:

+
    +
  • Search options transferred to searchbar menu
  • +
  • Whole word search option added
  • +
  • Whole word, case sensitive mode and use regex search settings now persist
  • +
+

Minor updates:

+
    +
  • The search bar now updates properly after changing the active document
  • +
  • Trying to save a document to an unwritable location is now handled better
  • +
  • The system style is now followed by the symbol outline and when launched without open documents
  • +
  • Mixed case sensitive search now works as expected
  • +
  • The search results no longer change unexpectedly when focusing a document
  • +
  • Now there is always an active project at startup if there are projects in the sidebar
  • +
  • If a development branch is running this shows in the window title and in the dock tooltip
  • +
  • Ctrl+PageUp and Ctrl+PageDown shortcuts now switch tabs
  • +
  • Ensure active project at startup (include non-git folders)
  • +
  • Updated translations
  • +
+
+ + No expander on folders that contain no text files + Add whole word search + Undo-ing sometimes deletes the entire contents of a file + Search occurence label does not update when active document changed + Autosave of unsaved buffers not reliable + Slow to close multiple documents + Unexpected closing on pressing Global Search accelerator with no open documents + Clicking "Find in Project…" in the welcome screen causes the app crashing + Cancelling saving does not work as expected when closing project folder resulting in data loss + Saving new document to an unwritable location gives unexpected behaviour and possible data loss + Symbol outline does not respect system style + "Replace All" should not disable the "Replace" and "Replace All" buttons + Does not follow system color scheme when launching with no files open + Secure WebDav files opened from Files cannot save + Case sensitive/insensitive search does not work as expected with mixed case search term + Cannot open files with unknown characters + Search results change when document focused in + Document does not open when sidebar entry clicked if it is already focused + Git branch change can result in unwanted warnings + Search entry reverts to previous term after editing and pressing Control+f + Tab width menu does not work + Line numbers should start from one not zero + +
+ + + +

Improvements:

+
    +
  • Redesigned app icon
  • +
  • New custom dark and light elementary styles for the source view
  • +
  • Option to follow the system dark style preference
  • +
  • Ability to half tile on small notebook displays
  • +
+

Minor updates:

+
    +
  • Both Find on Page and Find in Project are now available from the app's menu instead of in the headerbar
  • +
  • Options for hiding and showing panels are now all present in a compact set of linked buttons in the app's menu
  • +
  • The sidebar now contains the project chooser button and fills the height of the window
  • +
  • Starting a global search with text selected now pre-fills that text
  • +
  • The symbol outline pane is now shown to the right of the source view and can be shown and hidden with the keyboard shortcut "Alt + \"
  • +
  • Terminal, Symbol outline, and the Strip Trailing Whitespace plugins are now part of the main codebase
  • +
  • Show an infobar when tab width settings are being overwritten by an EditorConfig file
  • +
  • The shortcut for rebuilding the completion word list is now "Ctrl + |"
  • +
  • Updated translations
  • +
+
+ + Drag and drop of selected text not working with accented characters + Dragging text into document in a second window duplicates it + Tab width label does not update properly + Open tab in new window also opens other tabs in the new window + Project list contains duplicates after creating new window + Changing zoom with scroll lags + +
+ + + +

Improvements:

+
    +
  • The current document filename is now shown as the window title in multitasking view
  • +
  • Hidden folders are now shown in the project sidebar
  • +
  • The currently selected result and the number of results is displayed while searching
  • +
  • The search bar now has a regular expression mode
  • +
+

Fixes:

+
    +
  • It is now possible to change Git branch with untracked files present in a project
  • +
  • Crashes are prevented while searching in large projects
  • +
  • The correct document is now focused after opening Code from an external program
  • +
  • Line duplication is now actioned correctly if there is no selection present
  • +
  • Code no longer crashes when asked to open an unknown URI format
  • +
+

Minor updates:

+
    +
  • Updated translations
  • +
+
+
+ + + +

Improvements:

+
    +
  • Projects with the same name now include their parent folder name as well
  • +
  • When scrolling to search results, overshoot slightly for better visibility
  • +
  • Use the FileChooser portal instead of the one from GTK
  • +
  • Center the global search dialog over the main Code window
  • +
+

Fixes:

+
    +
  • Fix visibility of Terminal button on Welcome page
  • +
  • Fix some keyboard shortcuts affecting unfocused Document instead of focused Terminal
  • +
  • Close Terminal if shell exited and create new Terminal if re-opened with no shell
  • +
+

Minor updates:

+
    +
  • "Visible whitespace" combobox is now a switch
  • +
  • Updated translations
  • +
+
+
+ + + +

Fixes:

+
    +
  • Fix crash when creating new window from tab drop
  • +
  • Ensure files created from the sidebar are automatically opened
  • +
+

Improvements:

+
    +
  • Hide project chooser button when hiding sidebar
  • +
+

Minor updates:

+
    +
  • Ensure all copy is translatable
  • +
  • Updated translations
  • +
+
+
+ + +
+
diff --git a/data/icons/128/io.elementary.code.svg b/data/icons/128.svg similarity index 50% rename from data/icons/128/io.elementary.code.svg rename to data/icons/128.svg index eb4dbdf194..894cea527c 100644 --- a/data/icons/128/io.elementary.code.svg +++ b/data/icons/128.svg @@ -1,75 +1,149 @@ + id="svg3049" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + id="defs3051"> - + id="linearGradient3924"> + offset="0.06316455" /> + offset="0.95056331" /> - + id="linearGradient3688-166-749-5"> + + + + + + + + + + + + + id="linearGradient3811"> + + + + + + + + - - + id="metadata3054"> image/svg+xml - - - - - + + + + style="opacity:0.2;color:#000000;fill:url(#radialGradient3976);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path3041" + d="m 119,118.00181 a 55,6 0 0 1 -109.9999975,0 55,6 0 1 1 109.9999975,0 z" /> - - + style="display:inline" + id="g2036" + transform="matrix(2.6999989,0,0,0.55555607,-0.8000075,94.890689)"> + + + + + + + + + style="color:#000000;font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:19px;line-height:125%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Semi-Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5857);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> diff --git a/data/icons/16.svg b/data/icons/16.svg new file mode 100644 index 0000000000..27f3360c91 --- /dev/null +++ b/data/icons/16.svg @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/16/io.elementary.code.svg b/data/icons/16/io.elementary.code.svg deleted file mode 100644 index 09b8e707d5..0000000000 --- a/data/icons/16/io.elementary.code.svg +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/icons/24/io.elementary.code.svg b/data/icons/24.svg similarity index 66% rename from data/icons/24/io.elementary.code.svg rename to data/icons/24.svg index 6ac284cab0..6f59f88bb8 100644 --- a/data/icons/24/io.elementary.code.svg +++ b/data/icons/24.svg @@ -1,109 +1,119 @@ + id="svg7107" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + id="defs7109"> + + id="linearGradient3924-64"> + offset="0" /> + offset="0" /> + offset="1" /> + offset="1" /> - - - + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" /> + id="linearGradient3688-166-749-9"> - + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" /> + id="linearGradient3688-464-309-7-6"> - + + + + + + + gradientTransform="matrix(0.45945947,0,0,0.45945947,-19.592458,3.3648834)" + x1="23.99999" + y1="6.5908961" + x2="23.99999" + y2="41.414425" /> + gradientTransform="matrix(0.5531492,0.14755837,-0.08960859,0.33296082,2.5127134,-0.5401365)" /> + - + id="metadata7112"> image/svg+xml - + + - - + style="display:inline;opacity:1" + id="g2036-4" + transform="matrix(0.55,0,0,0.3333336,-1.2000011,7.33333)"> + + + + + + + - - - - - - - + style="opacity:0.2;fill:#aa8e37;fill-opacity:1"> diff --git a/data/icons/32.svg b/data/icons/32.svg new file mode 100644 index 0000000000..6845866746 --- /dev/null +++ b/data/icons/32.svg @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/32/io.elementary.code.svg b/data/icons/32/io.elementary.code.svg deleted file mode 100644 index 4760fe4ea9..0000000000 --- a/data/icons/32/io.elementary.code.svg +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/icons/48.svg b/data/icons/48.svg new file mode 100644 index 0000000000..a78a45caa4 --- /dev/null +++ b/data/icons/48.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/data/icons/48/io.elementary.code.svg b/data/icons/48/io.elementary.code.svg deleted file mode 100644 index 59c9e4699f..0000000000 --- a/data/icons/48/io.elementary.code.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/data/icons/64.svg b/data/icons/64.svg new file mode 100644 index 0000000000..86828ab40d --- /dev/null +++ b/data/icons/64.svg @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/data/icons/64/io.elementary.code.svg b/data/icons/64/io.elementary.code.svg deleted file mode 100644 index e7a53c793d..0000000000 --- a/data/icons/64/io.elementary.code.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/plugins/outline/icons/abstractclass.svg b/data/icons/SymbolOutline/abstractclass.svg similarity index 100% rename from plugins/outline/icons/abstractclass.svg rename to data/icons/SymbolOutline/abstractclass.svg diff --git a/plugins/outline/icons/abstractmethod.svg b/data/icons/SymbolOutline/abstractmethod.svg similarity index 100% rename from plugins/outline/icons/abstractmethod.svg rename to data/icons/SymbolOutline/abstractmethod.svg diff --git a/plugins/outline/icons/abstractproperty.svg b/data/icons/SymbolOutline/abstractproperty.svg similarity index 100% rename from plugins/outline/icons/abstractproperty.svg rename to data/icons/SymbolOutline/abstractproperty.svg diff --git a/plugins/outline/icons/class.svg b/data/icons/SymbolOutline/class.svg similarity index 100% rename from plugins/outline/icons/class.svg rename to data/icons/SymbolOutline/class.svg diff --git a/plugins/outline/icons/constant.svg b/data/icons/SymbolOutline/constant.svg similarity index 100% rename from plugins/outline/icons/constant.svg rename to data/icons/SymbolOutline/constant.svg diff --git a/plugins/outline/icons/constructor.svg b/data/icons/SymbolOutline/constructor.svg similarity index 100% rename from plugins/outline/icons/constructor.svg rename to data/icons/SymbolOutline/constructor.svg diff --git a/plugins/outline/icons/delegate.svg b/data/icons/SymbolOutline/delegate.svg similarity index 100% rename from plugins/outline/icons/delegate.svg rename to data/icons/SymbolOutline/delegate.svg diff --git a/plugins/outline/icons/enum.svg b/data/icons/SymbolOutline/enum.svg similarity index 100% rename from plugins/outline/icons/enum.svg rename to data/icons/SymbolOutline/enum.svg diff --git a/plugins/outline/icons/errordomain.svg b/data/icons/SymbolOutline/errordomain.svg similarity index 100% rename from plugins/outline/icons/errordomain.svg rename to data/icons/SymbolOutline/errordomain.svg diff --git a/plugins/outline/icons/interface.svg b/data/icons/SymbolOutline/interface.svg similarity index 100% rename from plugins/outline/icons/interface.svg rename to data/icons/SymbolOutline/interface.svg diff --git a/plugins/outline/icons/method.svg b/data/icons/SymbolOutline/method.svg similarity index 100% rename from plugins/outline/icons/method.svg rename to data/icons/SymbolOutline/method.svg diff --git a/plugins/outline/icons/namespace.svg b/data/icons/SymbolOutline/namespace.svg similarity index 100% rename from plugins/outline/icons/namespace.svg rename to data/icons/SymbolOutline/namespace.svg diff --git a/plugins/outline/icons/plugin-outline-symbolic.svg b/data/icons/SymbolOutline/plugin-outline-symbolic.svg similarity index 100% rename from plugins/outline/icons/plugin-outline-symbolic.svg rename to data/icons/SymbolOutline/plugin-outline-symbolic.svg diff --git a/plugins/outline/icons/property.svg b/data/icons/SymbolOutline/property.svg similarity index 100% rename from plugins/outline/icons/property.svg rename to data/icons/SymbolOutline/property.svg diff --git a/plugins/outline/icons/signal.svg b/data/icons/SymbolOutline/signal.svg similarity index 100% rename from plugins/outline/icons/signal.svg rename to data/icons/SymbolOutline/signal.svg diff --git a/plugins/outline/icons/staticmethod.svg b/data/icons/SymbolOutline/staticmethod.svg similarity index 100% rename from plugins/outline/icons/staticmethod.svg rename to data/icons/SymbolOutline/staticmethod.svg diff --git a/plugins/outline/icons/struct.svg b/data/icons/SymbolOutline/struct.svg similarity index 100% rename from plugins/outline/icons/struct.svg rename to data/icons/SymbolOutline/struct.svg diff --git a/plugins/outline/icons/virtualmethod.svg b/data/icons/SymbolOutline/virtualmethod.svg similarity index 100% rename from plugins/outline/icons/virtualmethod.svg rename to data/icons/SymbolOutline/virtualmethod.svg diff --git a/plugins/outline/icons/virtualproperty.svg b/data/icons/SymbolOutline/virtualproperty.svg similarity index 100% rename from plugins/outline/icons/virtualproperty.svg rename to data/icons/SymbolOutline/virtualproperty.svg diff --git a/data/icons/find-on-page-symbolic.svg b/data/icons/find-on-page-symbolic.svg new file mode 100644 index 0000000000..1760704d33 --- /dev/null +++ b/data/icons/find-on-page-symbolic.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/data/icons/panel-bottom-symbolic.svg b/data/icons/panel-bottom-symbolic.svg new file mode 100644 index 0000000000..7362d82bd3 --- /dev/null +++ b/data/icons/panel-bottom-symbolic.svg @@ -0,0 +1,16 @@ + + diff --git a/data/icons/panel-left-rtl-symbolic.svg b/data/icons/panel-left-rtl-symbolic.svg new file mode 100644 index 0000000000..18e7a4cfdf --- /dev/null +++ b/data/icons/panel-left-rtl-symbolic.svg @@ -0,0 +1,16 @@ + + diff --git a/data/icons/panel-left-symbolic.svg b/data/icons/panel-left-symbolic.svg new file mode 100644 index 0000000000..11dfe83236 --- /dev/null +++ b/data/icons/panel-left-symbolic.svg @@ -0,0 +1,16 @@ + + diff --git a/data/icons/panel-right-rtl-symbolic.svg b/data/icons/panel-right-rtl-symbolic.svg new file mode 100644 index 0000000000..f11aaae9a0 --- /dev/null +++ b/data/icons/panel-right-rtl-symbolic.svg @@ -0,0 +1,16 @@ + + diff --git a/data/icons/panel-right-symbolic.svg b/data/icons/panel-right-symbolic.svg new file mode 100644 index 0000000000..ac8d3d62c3 --- /dev/null +++ b/data/icons/panel-right-symbolic.svg @@ -0,0 +1,16 @@ + + diff --git a/data/io.elementary.code.1 b/data/io.elementary.code.1 new file mode 100644 index 0000000000..836d54871b --- /dev/null +++ b/data/io.elementary.code.1 @@ -0,0 +1,50 @@ +.TH "Code" "1" "November 2017" +. +.SH "NAME" +\fBio.elementary.code\fR \- text editor that works for you +. +.SH "SYNOPSIS" +\fBio.elementary.code\fR [\fIOPTION\.\.\.\fR] [\fIFILE\.\.\.\fR] +. +.SH "DESCRIPTION" +\fBCode\fR is the text editor that works for you\. It auto-saves your files, meaning they're always up-to-date\. Plus it remembers your tabs so you never lose your spot, even in between sessions\. +. +.P +\fBMake it yours.\fR Code is written from the ground up to be extensible\. Keep things super lightweight and simple, or install extensions to turn Code into a full-blown IDE; it's your choice\. And with a handful of useful preferences, you can tweak the behavior and interface to your liking\. +. +.P +\fBIt's elementary.\fR Code is made to be the perfect text editor for elementary OS, meaning it closely follows the high standards of design, speed, and consistency\. It's sexy, but not distracting\. +. +.P +\fBWorks with your language.\fR Whether you're crafting code in Vala, scripting with PHP, or marking things up in HTML, Code has you covered\. Experience full syntax highlighting with nearly all programming, scripting, and markup languages\. +. +.SH "OPTIONS" +. +.TP +\fB\-t\fR, \fB\-\-new\-tab\fR +Open a new tab\. +. +.TP +\fB\-n\fR, \fB\-\-new\-window\fR +Open a new window\. +. +.TP +\fB\-h\fR, \fB\-\-help\fR +Show a help message and exit\. +. +.TP +\fB\-v\fR, \fB\-\-version\fR +Print version info and exit\. +. +.TP +\fB\-\-display=\fR\fIDISPLAY\fR +X display to use\. +. +.SH "AUTHOR" +Mario Guerriero , +Julien Spautz , +Giulio Collura , +Lucas Baudin et al. +.PP +This manual page was written by Sergey "Shnatsel" Davidoff , +for the Debian project (but may be used by others). diff --git a/data/io.elementary.code.appdata.xml.in b/data/io.elementary.code.appdata.xml.in deleted file mode 100644 index 00726ecb7c..0000000000 --- a/data/io.elementary.code.appdata.xml.in +++ /dev/null @@ -1,260 +0,0 @@ - - - - io.elementary.code - CC0-1.0 - elementary - GPL-3.0+ - Code - The editor that works for you - -

Whether you're writing in Markdown or managing a complex app codebase, Code is the lightweight but full-featured editor for you. It auto-saves your files to ensure they're always up-to-date, and it remembers your tabs so you never lose your spot—even between sessions.

-

Designed around a project-based workflow, Code knows about your separate codebases. It comes with helpful Git integration to create and switch between branches and show changed files and lines within your projects.

-

Work with your language: whether you're crafting code in Vala, scripting with PHP, or marking things up in HTML, Code has you covered. Experience full syntax highlighting with nearly all programming, scripting, and markup languages.

-

Find anything in your current file, specific folders, or your whole project with options for case-sensitivity and regular expressions.

-

Smart features throughout: automatic indentation, smart cut/copy behavior, visible whitespace for selected text and at the end of lines by default, and optional extensions for Markdown actions, spell checking, whitespace trimming, word completion, and more.

-

Adapt Code to your workflow: you can tweak the behavior and interface as needed with a handful of useful and well-considered extensions and preferences.

-

There's a ton more:

-
    -
  • Solarized Light, Solarized Dark, and High Contrast color schemes that affect the whole UI
  • -
  • Togglable sidebar to fit your workflow
  • -
  • Smart indentation and .editorconfig support
  • -
  • Browser-class tabs with drag-and-drop, duplication, undo closing, and tab history
  • -
  • Display the current line and character—and quickly jump to a new line
  • -
  • Scroll past the end of the file so you can keep the current line where it's comfortable
  • -
  • Optional mini-map to make navigating large files easier
  • -
-
- - - -

Fixes:

-
    -
  • Fix visibility of Terminal button on Welcome page
  • -
  • Fix some keyboard shortcuts affecting unfocused Document instead of focused Terminal
  • -
  • Close Terminal if shell exited and create new Terminal if re-opened with no shell
  • -
-

Minor updates:

-
    -
  • Updated translations
  • -
-
-
- - -

Fixes:

-
    -
  • Fix crash when creating new window from tab drop
  • -
  • Ensure files created from the sidebar are automatically opened
  • -
-

Improvements:

-
    -
  • Hide project chooser button when hiding sidebar
  • -
-

Minor updates:

-
    -
  • Ensure all copy is translatable
  • -
  • Updated translations
  • -
-
-
- - -

New features:

-
    -
  • New Markdown plugin for WYSIWYG-like editing.
  • -
  • Switch Git branches or create new ones in project folder context menus
  • -
  • Show Git diff status in source view gutters
  • -
  • Full text search within project folder.
  • -
  • Save and restore cursor position between sessions
  • -
  • Close files from a project when that project is closed
  • -
  • Show full file path in tab tooltips
  • -
  • Clear lines with Ctrl + K
  • -
-

Minor updates:

-
    -
  • Allow Spell Checker extension in Markdown files
  • -
  • Improve multi-line duplication
  • -
  • Remember whether the sidebar is open
  • -
  • Set window title to the focused file
  • -
  • Add keyboard shortcuts for next and previous documents
  • -
  • Show full document path in tab tooltip
  • -
  • Update Pastebin plugin
  • -
  • Correctly indent last line when using the preserve whitespace plugin
  • -
  • Keep syntax highlighting when duplicating a file
  • -
  • Expand a collapsed folder if you attempt to open it twice
  • -
  • Fix an issue where searches are lost when Code loses focus
  • -
  • Start Vim plugin in command mode
  • -
  • Fix and add new Vim commands
  • -
  • Show project folders with a hidden root folder
  • -
  • Allow launching with pkexec and disallow launching with sudo
  • -
  • Remove split view
  • -
  • Remove browser preview
  • -
  • Updated translations
  • -
-
-
- - -

Fixes:

-
    -
  • Fix empty sidebar layout, ensuring folders can always be added
  • -
-

Minor updates:

-
    -
  • Scroll past the end of a file
  • -
  • More efficiently save and restore window position
  • -
  • Updated translations
  • -
-
-
- - -

New features:

-
    -
  • Include Git status in file tooltips
  • -
  • Option for explicit case-sensitive Find
  • -
-

Other updates:

-
    -
  • Correctly show Toggle Comment menu item when no text is selected
  • -
  • Fixed font switch alignment
  • -
  • Updated translations
  • -
-
-
- - -

New features:

-
    -
  • New "Close Other Folders" menu item to help clean up your sidebar
  • -
  • Save and restore cyclic search setting
  • -
-

Other updates:

-
    -
  • Add keyboard shortcuts to menu items
  • -
  • Make sidebar folder items not selectable
  • -
  • Center new windows
  • -
  • Updated translations
  • -
-
-
- - -

New features:

-
    -
  • Visually deprioritize .gitignored files in project sidebar
  • -
  • Smart cut/copy lines with no active selection
  • -
  • Add a confirmation dialog to the "Restore" action
  • -
  • Add "Open In" menu to the top-level folder in the folder manager
  • -
  • Don't show temporary files in the folder manager
  • -
  • Add brackets completion and auto-indent by default
  • -
  • Zoom terminal plugin with keyboard
  • -
  • Honor global privacy setting when saving and restoring
  • -
-

Other updates:

-
    -
  • Simplify "Draw spaces" preference
  • -
  • Fix the keyboard shortcut for going backwards in search results
  • -
  • Fix opening files from relative paths in Terminal
  • -
  • Fix null file dialog when opening a new window via the dock
  • -
  • Add "=" as a zoom key
  • -
  • Change search entry icon when results aren't found
  • -
  • Enter name of new file before creating it
  • -
  • Updated translations
  • -
-
-
- - -
    -
  • Use Granite.MessageDialog throughout
  • -
  • Include non-text files in sidebar
  • -
  • Fix Remove Current View
  • -
-
-
- - -
    -
  • Fix New Window desktop action behavior
  • -
  • Properly synchronize Ctrl+N key presses with number of new documents spawned
  • -
  • Build system fix for editorconfig dependency
  • -
  • Add Change Branch context menu item
  • -
  • Avoid possible startup crash related to how plugins load
  • -
  • Updated translations
  • -
-
-
- - -
    -
  • Smarter file saving behavior
  • -
  • File saving fixes
  • -
  • Don't add temporary files to tab restore
  • -
  • Updated translations
  • -
-
-
- - -
    -
  • Don't recreate deleted files when restoring session
  • -
  • Restore line wrap preference
  • -
  • Add accel tooltips
  • -
  • Minor bug fixes
  • -
  • Updated translations
  • -
-
-
- - -
- - io.elementary.code - - - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - - elementary, Inc. - https://elementary.io/ - https://github.com/elementary/code/issues - https://elementary.io/get-involved#funding - https://github.com/elementary/code/discussions/categories/q-a - https://l10n.elementary.io/projects/code - contact_AT_elementary.io - - - https://raw.githubusercontent.com/elementary/code/master/data/screenshot.png - - - https://raw.githubusercontent.com/elementary/code/master/data/screenshot-dark.png - - -
diff --git a/data/io.elementary.code.desktop.in.in b/data/io.elementary.code.desktop.in.in index ca0c110a18..ae78f19e70 100644 --- a/data/io.elementary.code.desktop.in.in +++ b/data/io.elementary.code.desktop.in.in @@ -1,13 +1,13 @@ [Desktop Entry] Type=Application -Name=Code +Name=@NAME@ Comment=Edit code files GenericName=Code Editor Exec=@EXEC_NAME@ %U Icon=io.elementary.code Terminal=false Categories=Development;GTK;IDE;WebDevelopment; -Keywords=text;IDE;scratch; +Keywords=text;IDE;scratch;code; MimeType=text/plain;inode/directory; StartupNotify=true Actions=NewWindow;NewFile; diff --git a/data/io.elementary.code.gresource.xml b/data/io.elementary.code.gresource.xml index d9482ebc23..ff90ecb696 100644 --- a/data/io.elementary.code.gresource.xml +++ b/data/io.elementary.code.gresource.xml @@ -3,5 +3,30 @@ Application.css icons/48/git.svg + icons/SymbolOutline/abstractclass.svg + icons/SymbolOutline/abstractmethod.svg + icons/SymbolOutline/abstractproperty.svg + icons/SymbolOutline/class.svg + icons/SymbolOutline/constant.svg + icons/SymbolOutline/constructor.svg + icons/SymbolOutline/delegate.svg + icons/SymbolOutline/enum.svg + icons/SymbolOutline/errordomain.svg + icons/SymbolOutline/interface.svg + icons/SymbolOutline/method.svg + icons/SymbolOutline/namespace.svg + icons/SymbolOutline/property.svg + icons/SymbolOutline/signal.svg + icons/SymbolOutline/staticmethod.svg + icons/SymbolOutline/struct.svg + icons/SymbolOutline/virtualmethod.svg + icons/SymbolOutline/virtualproperty.svg + icons/SymbolOutline/plugin-outline-symbolic.svg + icons/find-on-page-symbolic.svg + icons/panel-bottom-symbolic.svg + icons/panel-left-rtl-symbolic.svg + icons/panel-left-symbolic.svg + icons/panel-right-rtl-symbolic.svg + icons/panel-right-symbolic.svg diff --git a/data/io.elementary.code.gschema.xml b/data/io.elementary.code.gschema.xml index 6ec10220c8..d0bad47f8d 100644 --- a/data/io.elementary.code.gschema.xml +++ b/data/io.elementary.code.gschema.xml @@ -10,6 +10,11 @@ + + + + + @@ -42,11 +47,21 @@ Sidebar visibility Whether or not the sidebar is open + + false + Symbol outline visibility + Whether or not the symbol outline is visible + + + '' + Last opened path + Last opened path in the terminal + - ['brackets-completion', 'detect-indent', 'editorconfig', 'outline'] + ['brackets-completion', 'detect-indent', 'editorconfig'] Enabled Plugins Enabled Plugins @@ -72,13 +87,13 @@ false - Show the right margin - Specifies if the Source view should show the right margin or not. + Show the line width guide + Specifies if the Source view should show the line width guide or not. 80 - Right margin position - Specifies the right margin position. + Line width guide position + Specifies the line width guide position. true @@ -106,6 +121,7 @@ Whether Code should use auto indentation + 4 Tab Size Specifies the number of spaces that should be displayed instead of Tab characters. @@ -121,7 +137,7 @@ Set the preferred font. - 'solarized-light' + 'elementary-light' Preferred Style Scheme Set the preferred style scheme. @@ -135,11 +151,36 @@ Request dark Gtk stylesheet variant Switches between dark and light style + + true + Follow the FreeDesktop.org dark style preference + Use the Dark style if the system prefers a dark style, or elementary Light otherwise. Overrides control of prefer-dark-style. + false Whether search is cyclic Whether text searching should cycle back to the beginning of the document after reaching the end of the document. + + false + Whether search is for whole words + Whether the search should only match whole words. + + + false + Whether search term is a regex expression + Whether the search should use the search term as a regex expression for matching. + + + 'mixed' + When text search is case sensitive + Whether the text search is case sensitive never, always or only when search term is mixed case + + + false + Whether to automatically remove trailing whitespace on saving + Whether trailing whitespace should be removed from a document whenever it is saved, including on autosave. + diff --git a/data/io.elementary.code.plugins.terminal.gschema.xml b/data/io.elementary.code.plugins.terminal.gschema.xml deleted file mode 100644 index d668bbc1df..0000000000 --- a/data/io.elementary.code.plugins.terminal.gschema.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - '' - Last opened path - Last opened path in the terminal plugin - - - diff --git a/data/meson.build b/data/meson.build index c2ff0c2881..b28891a23d 100644 --- a/data/meson.build +++ b/data/meson.build @@ -2,29 +2,41 @@ icon_sizes = ['16', '24', '32', '48', '64', '128'] foreach i : icon_sizes install_data( - join_paths('icons', i, meson.project_name() + '.svg'), - install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps') + 'icons' / i + '.svg', + install_dir: get_option('datadir') / 'icons' / 'hicolor' / i + 'x' + i / 'apps', + rename: meson.project_name() + '.svg' ) install_data( - join_paths('icons', i, meson.project_name() + '.svg'), - install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i + '@2', 'apps') + 'icons' / i + '.svg', + install_dir: get_option('datadir') / 'icons' / 'hicolor' / i + 'x' + i + '@2' / 'apps', + rename: meson.project_name() + '.svg' ) endforeach +install_data([ + 'styles/elementary-dark.xml', + 'styles/elementary-light.xml', +], install_dir: get_option('datadir') / 'gtksourceview-4' / 'styles') + install_data([ 'fonts/BuilderBlocks.ttf', -], install_dir: join_paths(get_option('datadir'), meson.project_name(), 'fonts')) +], install_dir: get_option('datadir') / meson.project_name() / 'fonts') install_data( 'io.elementary.code.gschema.xml', 'io.elementary.code.plugins.spell.gschema.xml', - 'io.elementary.code.plugins.terminal.gschema.xml', - install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'glib-2.0', 'schemas') + install_dir: get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas' ) config_data = configuration_data() config_data.set('EXEC_NAME', meson.project_name()) +if (branch != '') + config_data.set('NAME', 'Code - ' + branch) +else + config_data.set('NAME', 'Code') +endif + # Set the executable name and translate the desktop files desktop_in_file = configure_file( input: 'io.elementary.code.desktop.in.in', @@ -35,19 +47,19 @@ desktop_in_file = configure_file( desktop_file = i18n.merge_file( input: desktop_in_file, output: 'io.elementary.code.desktop', - po_dir: join_paths(meson.source_root (), 'po', 'extra'), + po_dir: meson.project_source_root () / 'po' / 'extra', type: 'desktop', - install_dir: join_paths(get_option('datadir'), 'applications'), + install_dir: get_option('datadir') / 'applications', install: true ) -# Translate the AppData file -appstream_file = i18n.merge_file( - input: 'io.elementary.code.appdata.xml.in', - output: '@BASENAME@', - po_dir: join_paths(meson.source_root (), 'po', 'extra'), - install_dir: join_paths(get_option('datadir'), 'metainfo'), - install: true +i18n.merge_file( + input: 'code.metainfo.xml.in', + output: meson.project_name() + '.metainfo.xml', + po_dir: meson.project_source_root() / 'po' / 'extra', + type: 'xml', + install: true, + install_dir: get_option('datadir') / 'metainfo', ) config_data = configuration_data() @@ -64,11 +76,14 @@ if get_option ('have_pkexec') ) i18n.merge_file( - 'policy', input: policy_in, output: meson.project_name() + '.policy', - po_dir: join_paths(meson.source_root (), 'po', 'extra'), + po_dir: meson.project_source_root () / 'po' / 'extra', install: true, - install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions'), + install_dir: get_option('datadir') / 'polkit-1' / 'actions', ) endif + +install_man( + 'io.elementary.code.1' +) diff --git a/data/screenshot-dark.png b/data/screenshot-dark.png index 899e941b2c..eccae81410 100644 Binary files a/data/screenshot-dark.png and b/data/screenshot-dark.png differ diff --git a/data/screenshot.png b/data/screenshot.png index 8b6eb2d8d9..ede769c965 100644 Binary files a/data/screenshot.png and b/data/screenshot.png differ diff --git a/data/styles/elementary-dark.xml b/data/styles/elementary-dark.xml new file mode 100644 index 0000000000..ccdff0a7b4 --- /dev/null +++ b/data/styles/elementary-dark.xml @@ -0,0 +1,113 @@ + + + + Micah Ilbery + <_description>Color scheme using the elementary color palette + + + + + + + + + + + + + + + + + + + + + + +