Compare commits

..

72 commits

Author SHA1 Message Date
936e57b63e chore: fige Cargo.lock (epoch-1.9.0, [patch] locaux)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 21:03:54 +02:00
c45b23aa85 merge: epoch-1.9.0 d'upstream
# Conflicts:
#	Cargo.lock
2026-09-24 20:50:47 +02:00
Hojjat
bfc98bf219 chore: update libcosmic to fix esc, and bindings in context menu 2026-09-23 11:30:54 -06:00
Michael Aaron Murphy
14aba66228 chore: update debian/rules 2026-09-16 16:28:59 -04:00
Michael Aaron Murphy
430120f6ff chore: update cosmic-files and libcosmic 2026-09-16 16:28:59 -04:00
Hojjat
9307793661 feat: use libcosmic's context_menu widget 2026-09-16 16:28:59 -04:00
Hojjat
505ecd18fe chore: adopt typed surface actions from libcosmic 2026-09-16 16:28:59 -04:00
Michael Aaron Murphy
4b4871ecf4 Epoch 1.9.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-09-16 16:28:59 -04:00
Michael Murphy
1054b6a7fd
i18n: translation update from Hosted Weblate (#616)
Translations update from [Hosted Weblate](https://hosted.weblate.org)
for [Pop OS/COSMIC
Edit](https://hosted.weblate.org/projects/pop-os/cosmic-edit/).



Current translation status:

![Weblate translation
status](https://hosted.weblate.org/widget/pop-os/cosmic-edit/matrix-auto.svg)
2026-09-15 21:56:46 +02:00
Hosted Weblate
139cfaaf5c
i18n: translation updates from weblate
Co-authored-by: Amadɣas <massiin@proton.me>
Co-authored-by: Blauen <butterflee555@gmail.com>
Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kurt Harren Catindig <kurtharrencatindig03@gmail.com>
Co-authored-by: Quentin PAGÈS <quentinantonin@free.fr>
Co-authored-by: Satakun Utama <galaxytomostore@gmail.com>
Co-authored-by: VandaL <vandalhj@gmail.com>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/hu/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/kab/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/kmr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/oc/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/pl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/th/
Translation: Pop OS/COSMIC Edit
2026-09-13 01:54:35 +02:00
85da7f90f2 chore: fige Cargo.lock 2026-09-10 18:12:37 +02:00
70c1765b1f Merge tag 'epoch-1.8.0' into local/libcosmic-path-patch
Epoch 1.8.0

# Conflicts:
#	Cargo.lock
2026-09-10 17:57:28 +02:00
20c47377a8 chore: fige Cargo.lock (reordonnancement patch.unused par cargo) 2026-09-04 10:48:53 +02:00
Jeremy Soller
26f6ffd3e6 Epoch 1.8.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-09-03 13:18:38 -06:00
6150549a9b chore: fige Cargo.lock tel que resolu apres le merge 1.7.0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-27 07:58:51 +02:00
de9ae6890a Merge tag 'epoch-1.7.0' into local/libcosmic-path-patch
Epoch 1.7.0
2026-08-27 07:50:01 +02:00
Jeremy Soller
13b1d4aac0 Epoch 1.7.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-08-25 11:39:01 -06:00
Michael Murphy
6c800ce1f1
i18n: translation update from Hosted Weblate (#610)
Translations update from [Hosted Weblate](https://hosted.weblate.org)
for [Pop OS/COSMIC
Edit](https://hosted.weblate.org/projects/pop-os/cosmic-edit/).



Current translation status:

![Weblate translation
status](https://hosted.weblate.org/widget/pop-os/cosmic-edit/matrix-auto.svg)
2026-08-24 20:52:37 +02:00
Jeremy Soller
0e9c927f1a
Fix tab auto focus on TabCloseForce (#603)
Auto focus should only trigger if the current tab is selected or else
closing an unfocused tab would move the focused tab.

See: pop-os/cosmic-files#1949

- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-08-20 19:02:21 -06:00
Jeremy Soller
b23384043e
feat: disable Cut and Copy buttons when no text is selected (#588)
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-08-20 19:01:35 -06:00
36d66d7ef2 Merge remote-tracking branch 'upstream/master' into local/libcosmic-path-patch
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/menu.rs
#	src/text_box.rs
2026-08-19 21:59:53 +02:00
Hosted Weblate
4a5be62b02
i18n: translation updates from weblate
Co-authored-by: Jens Peter Nielsen <mail@jp-nielsen.dk>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/da/
Translation: Pop OS/COSMIC Edit
2026-08-19 09:52:58 +00:00
nicole mikołajczyk
8c9c15de85 feat: disable Cut and Copy buttons when no text is selected
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-08-18 15:49:12 -06:00
Jeremy Soller
0f725de5e6
Epoch 1.6.0 version update (#609)
Generated by cosmic-epoch scripts/version-update.sh
2026-08-18 15:25:10 -06:00
Jeremy Soller
1727fe3108 Epoch 1.6.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-08-18 14:14:57 -06:00
Jeremy Soller
98191e32c7
Better efficiency (fewer redraws) and context menu in input fields (#604)
Depends on 
- [x] https://github.com/pop-os/iced/pull/377
- [x] https://github.com/pop-os/libcosmic/pull/1382
- [x] https://github.com/pop-os/libcosmic/pull/1387
- [x] https://github.com/pop-os/cosmic-files/pull/1815



This pulls the changes in Iced and libcosmic that removes "redraw on any
message", which means moving the cursor doesn't automatically call a
redraw, widgets need to ask for it. I have found all places that
previously was working normally because we were redrawing almost
unconditionally. But it is possible that a custom widget somewhere still
isn't asking for a redraw explicitly when its state changes. So, for QA
I'd keep an eye on that.

For example I found that moving the cursor to middle of a word and
pressing delete doesn't redraw, because we only redraw if the cursor
changes position. Or pressing ctrl+a and then backspace doesn't redraw
for the same reason. Or double-click to select a text wasn't drawing the
selection. I have fixed those, but just examples for the QA team to
check.

Demo:


https://github.com/user-attachments/assets/5e5940a8-fd89-498a-8670-85d540fcaa72


___
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-08-18 14:14:43 -06:00
Hojjat
067e2e0441 chore: update libcosmic and cosmic-files 2026-08-18 07:26:03 -06:00
Michael Murphy
3f2c1af3fa
i18n: translation update from Hosted Weblate (#601) 2026-08-18 14:08:59 +02:00
Hosted Weblate
8b3cff1afd
i18n: translation updates from weblate
Co-authored-by: Andi Chandler <andi@gowling.com>
Co-authored-by: CodeBeats <nicholai67@hotmail.com>
Co-authored-by: Feike Donia <feikedonia@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Martin Meizoso <martinmeizoso@gmail.com>
Co-authored-by: Michael Millet <mikevlet@protonmail.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: Quentin PAGÈS <quentinantonin@free.fr>
Co-authored-by: Sproston <ojspr2007@gmail.com>
Co-authored-by: Steen Rabol <steen@rabol.dev>
Co-authored-by: Walter William Beckerleg Bruckman <spayk.99@protonmail.com>
Co-authored-by: Wilbur Lindqvist <william@willmantrade.com>
Co-authored-by: lucamosca1 <luca.moscato@gmail.com>
Co-authored-by: sicKat <giuseppecatillo2003@gmail.com>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/da/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/en_GB/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/fi/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/gl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/hu/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/it/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/oc/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/sat/
Translation: Pop OS/COSMIC Edit
2026-08-17 06:51:31 +00:00
Hojjat
aad6c21ab4 fix: request redraw when editor needs to redraw
chore: update libcosmic

fix: redraw when deleting text where cursor doesn't move

editor only redraws if the action causes the cursor to move.
ctrl+a+backspace or presseing delete doesn't move the cursor.
2026-08-10 10:26:54 -06:00
Josh Megnauth
e4006945c6
Fix tab auto focus on TabCloseForce
Auto focus should only trigger if the current tab is selected or else
closing an unfocused tab would move the focused tab.

See: pop-os/cosmic-files#1949
2026-08-01 20:11:53 -04:00
542d943211 chore: normalize the libcosmic-yoda dependency idiom
Key the local libcosmic fork as `cosmic` with `package =
"libcosmic-yoda"` rather than keying it by package name, so every repo
in the local stack declares it the same way. The extern name stays
`cosmic` either way, so no source change is needed; the feature strings
move with the key.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 12:14:30 +02:00
Jeremy Soller
4ac0da3af9
Epoch 1.5.0 version update (#600)
Generated by cosmic-epoch scripts/version-update.sh
2026-07-28 18:04:45 -06:00
Jeremy Soller
97d310a94c Epoch 1.5.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-07-28 09:14:00 -06:00
Michael Murphy
dec809369a
i18n: translation update from Hosted Weblate (#582)
Translations update from [Hosted Weblate](https://hosted.weblate.org)
for [Pop OS/COSMIC
Edit](https://hosted.weblate.org/projects/pop-os/cosmic-edit/).



Current translation status:

![Weblate translation
status](https://hosted.weblate.org/widget/pop-os/cosmic-edit/horizontal-auto.svg)
2026-07-28 16:46:09 +02:00
Hosted Weblate
94b1e6cfa9
i18n: translation updates from weblate
Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Co-authored-by: Aman Alam <aalam@users.noreply.hosted.weblate.org>
Co-authored-by: Aman Shaw <shaw4m4n@netc.fr>
Co-authored-by: Arve Eriksson <arve.eriksson@startmail.com>
Co-authored-by: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com>
Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Co-authored-by: Fedorov Alexei <aleksejfedorov963@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: Kartik Nayak <65574961+kodebarista@users.noreply.github.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: VandaL <vandalhj@gmail.com>
Co-authored-by: Vilius Paliokas <viliuspaliokas@gmail.com>
Co-authored-by: Zahid Rizky Fakhri <zahidrizkyfakhri@gmail.com>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: lorduskordus <lorduskordus@gmail.com>
Co-authored-by: taijuin Lee <taijuin@gmail.com>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Co-authored-by: Димко <Dymkovych@proton.me>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/ar/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/ca/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/cs/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/de/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/el/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/hi/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/hu/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/id/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/kk/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/kmr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/lt/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/pa/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/pl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/ru/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/sat/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/sv/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/uk/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/zh_Hant/
Translation: Pop OS/COSMIC Edit
2026-07-28 06:02:06 +00:00
39a4e4beec chore: bump version to 1.3.0 2026-07-22 15:56:59 +02:00
Jeremy Soller
a3d4920285
Merge pull request #597 from pop-os/epoch-update
Epoch 1.4.0 version update
2026-07-20 18:07:47 -06:00
Jeremy Soller
e11896dac2 Epoch 1.4.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-07-20 14:35:58 -06:00
Jeremy Soller
60c38e818a Epoch 1.3.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-07-13 08:31:18 -06:00
Ashley Wulber
34eecb7dcd chore: update libcosmic 2026-07-10 01:29:44 +02:00
Jeremy Soller
2cbbf48e70
Merge pull request #590 from pop-os/theme-v2
Theme v2
2026-07-07 14:12:59 -06:00
Ashley Wulber
9c927e040d chore: update deps 2026-07-07 11:47:15 -04:00
Ashley Wulber
171de79535 chore: frosted glass 2026-07-06 09:34:42 -04:00
c3bd3782da yoda: unify cosmic-text via patch.crates-io + lockfile post-1.2.0 rebase
Leyoda 2026 – GPLv3
2026-07-03 15:11:11 +02:00
30b334693f fix: adapt to cosmic-theme background(transparent) accessor
Leyoda 2026 – GPLv3
2026-07-03 15:02:11 +02:00
00e4487038 chore: align about license metadata 2026-07-03 15:01:39 +02:00
cc2c274538 chore: align editor with local files stack 2026-07-03 15:01:21 +02:00
229b92c507 yoda: relocate local fork paths from ~/Devels to ~/Projets/COSMIC
Mise à jour des path= absolus (window_clipboard, dnd, mime, cosmic-text)
après consolidation des forks cosmic-* sous ~/Projets/COSMIC/.

Leyoda 2026 – GPLv3
2026-07-03 15:01:21 +02:00
cde36b1a5f yoda wayland-v5: redirect window_clipboard + cosmic-text to local forks
Propagates the [patch] blocks added in cosmic-yoterm v5 to keep the
whole yoda app family on a single Wayland-only stack. Without these,
iced_winit fails to select a window_clipboard version because our
fork exposes a `wayland` feature that upstream doesn't.

- window_clipboard → /home/lionel/Devels/window_clipboard (x11 gated
  behind opt-in feature)
- cosmic-text → /home/lionel/Devels/cosmic-text (EAW terminal_cells +
  upstream PR#503 applied)
2026-07-03 15:01:21 +02:00
6effc415e1 yoda: rewire onto libcosmic-yoda + leyoda/cosmic-files paths
- libcosmic git dep replaced by libcosmic-yoda = { path = ../libcosmic }
- cosmic-files git dep replaced by path = ../cosmic-files (leyoda fork)
- winit feature dropped from libcosmic-yoda deps, wayland added
- feature refs libcosmic/* -> libcosmic-yoda/*
- [patch] block for pop-os/libcosmic removed

Installed at /usr/bin/cosmic-edit. Pre-yoda binary kept as
/usr/bin/cosmic-edit.pre-yoda-fork.
2026-07-03 15:01:21 +02:00
Votre Nom
2600c6d38a Cargo.toml: patch libcosmic via local path for dev builds
Activates the [patch.'https://github.com/pop-os/libcosmic'] override
pointing at ../libcosmic, enabling local development against a
patched libcosmic checkout (e.g. to pick up
WindowControlsPosition / macOS-style window controls).

This branch is intentionally dev-local: do NOT merge upstream.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-07-03 15:01:06 +02:00
Nathan Rowe
dfcef22632 Save file to recents on save 2026-06-30 15:58:35 -04:00
Jeremy Soller
495f52cd5b Epoch 1.2.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-06-30 13:37:33 -06:00
Hojjat
eae9127fbe fix: add alt_clipboard bindings 2026-06-25 14:06:11 +02:00
Jeremy Soller
6ce200c84b Epoch 1.1.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-06-23 10:24:19 -06:00
Michael Aaron Murphy
b6627523f9 fix: add application/x-zerosize mime type association 2026-06-17 19:08:10 -04:00
Jeremy Soller
00a76ee709 Epoch 1.0.16 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-06-09 11:29:30 -06:00
Jeremy Soller
bf217ab250 Epoch 1.0.15 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-06-02 11:46:28 -06:00
Hojjat Abdollahi
a56297f855
fix(libcosmic): fix item highlight in wayland context menu 2026-05-28 23:11:52 +02:00
Ashley Wulber
2db1c80078 fix: update cosmic-files 2026-05-26 13:48:13 -06:00
Jeremy Soller
4edfc6aa8e
Merge pull request #573 from pop-os/epoch-update
Epoch 1.0.14 version update
2026-05-26 13:07:40 -06:00
Ashley Wulber
12cee06253 fix: libcosmic updates 2026-05-26 14:15:00 -04:00
Jeremy Soller
4b231042e7
Merge pull request #572 from weblate/weblate-pop-os-cosmic-edit
i18n: translation update from Hosted Weblate
2026-05-26 09:12:36 -06:00
Jeremy Soller
aadff7540e Epoch 1.0.14 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-05-26 08:30:47 -06:00
Hosted Weblate
2efddc1833
i18n: translation updates from weblate
Co-authored-by: therealmate <hellogaming91@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/hu/
Translation: Pop OS/COSMIC Edit
2026-05-26 01:11:34 +02:00
Jeremy Soller
7bbe82ec3f Epoch 1.0.13 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-05-12 12:09:43 -06:00
Jeremy Soller
448da77cd5
Merge pull request #565 from weblate/weblate-pop-os-cosmic-edit
i18n: translation update from Hosted Weblate
2026-05-12 09:41:41 -06:00
Levi Portenier
d123bc0a51
Merge pull request #566 from pop-os/epoch-update
Epoch 1.0.12 version update
2026-05-05 14:57:43 -06:00
Jeremy Soller
2a60283f14 Epoch 1.0.12 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-05-05 13:21:26 -06:00
Hosted Weblate
7de9ba756c
i18n: translation updates from weblate
Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Co-authored-by: BoneNI <bounkirdni@gmail.com>
Co-authored-by: Feike Donia <feikedonia@proton.me>
Co-authored-by: Filippos Papadopoulos <filippospap.developer@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: Konstantinos <kostas.lampropoulos94@gmail.com>
Co-authored-by: Nara Díaz Viñolas <nara.diaz.vinolas@gmail.com>
Co-authored-by: Tadas Misiūnas <tadujo@gmail.com>
Co-authored-by: Vilius Paliokas <viliuspaliokas@gmail.com>
Co-authored-by: Марко М. Костић <marko.m.kostic@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/ca/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/el/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/lt/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-edit/sr/
Translation: Pop OS/COSMIC Edit
2026-05-03 01:52:13 +02:00
KENZ
4c53d607f7
feat(ime): minimal IME support for the text_box widget (#539)
* Support CJK input method

* Fix the input method window occasionally jumps around

Use the previous caret(text cursor) position to place the input method
window when the position is not available

* refactor: Omit calling request_input_method() if doesn't focus

- iced UserInterface.update() starts with InputMethod::Disabled state,
  and merges any input_method_request() which is InputMethod::Enabled in
  widgets tree traversal.
- We don't enable the input method feature if the widget doesn't have
  focus, we can safely omit request_input_method() call itself.
2026-04-27 16:05:22 -06:00
41 changed files with 2381 additions and 1966 deletions

3004
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,10 @@
[package]
name = "cosmic-edit"
version = "1.0.11"
version = "1.9.0"
authors = ["Jeremy Soller <jeremy@system76.com>"]
edition = "2024"
license = "GPL-3.0-only"
rust-version = "1.90"
rust-version = "1.93"
[dependencies]
dirs = "6"
@ -33,21 +33,23 @@ i18n-embed-fl = "0.10"
rust-embed = "8"
[dependencies.cosmic-files]
git = "https://github.com/pop-os/cosmic-files.git"
path = "../cosmic-files"
default-features = false
[dependencies.cosmic-syntax-theme]
git = "https://github.com/pop-os/cosmic-syntax-theme.git"
[dependencies.cosmic-text]
git = "https://github.com/pop-os/cosmic-text.git"
version = "0.19"
features = ["syntect", "vi"]
[dependencies.libcosmic]
git = "https://github.com/pop-os/libcosmic.git"
# Yoda fork.
[dependencies.cosmic]
package = "libcosmic-yoda"
path = "../libcosmic"
default-features = false
#TODO: a11y feature crashes file choser dialog
features = ["about", "multi-window", "tokio", "winit", "surface-message"]
features = ["about", "multi-window", "tokio", "wayland", "surface-message"]
[target.'cfg(unix)'.dependencies]
fork = "0.2"
@ -57,10 +59,10 @@ xdgen = "0.1"
[features]
default = ["dbus-config", "gvfs", "wgpu", "wayland"]
dbus-config = ["libcosmic/dbus-config"]
dbus-config = ["cosmic/dbus-config"]
gvfs = ["cosmic-files/gvfs"]
wgpu = ["libcosmic/wgpu", "cosmic-files/wgpu"]
wayland = ["libcosmic/wayland", "cosmic-files/wayland"]
wgpu = ["cosmic/wgpu", "cosmic-files/wgpu"]
wayland = ["cosmic/wayland", "cosmic-files/wayland"]
[profile.release-with-debug]
inherits = "release"
@ -69,10 +71,12 @@ debug = true
[patch.crates-io]
onig = { git = "https://github.com/rust-onig/rust-onig.git", branch = "main" }
onig_sys = { git = "https://github.com/rust-onig/rust-onig.git", branch = "main" }
# Yoda: unify cosmic-text with the local checkout used by libcosmic/iced/glyphon.
cosmic-text = { path = "../cosmic-text" }
[patch.'https://github.com/pop-os/libcosmic']
libcosmic = { path = "../libcosmic" }
cosmic-config = { path = "../libcosmic/cosmic-config" }
cosmic-theme = { path = "../libcosmic/cosmic-theme" }
iced_futures = { path = "../libcosmic/iced/futures" }
iced_winit = { path = "../libcosmic/iced/winit" }
# Yoda wayland cut v5: redirect window_clipboard to the local fork
# (x11 gated behind opt-in feature).
[patch.'https://forge.aditua.com/leyoda/window_clipboard.git']
window_clipboard = { path = "/home/lionel/Projets/COSMIC/window_clipboard" }
dnd = { path = "/home/lionel/Projets/COSMIC/window_clipboard/dnd" }
mime = { path = "/home/lionel/Projets/COSMIC/window_clipboard/mime" }

84
debian/changelog vendored
View file

@ -1,3 +1,87 @@
cosmic-edit (1.9.0) noble; urgency=medium
* Epoch 1.9.0 version update
-- Michael Murphy <michael@mmurphy.dev> Mon, 14 Sep 2026 21:54:06 +0200
cosmic-edit (1.8.0) noble; urgency=medium
* Epoch 1.8.0 version update
-- Jeremy Soller <jeremy@system76.com> Wed, 02 Sep 2026 08:14:30 -0600
cosmic-edit (1.7.0) noble; urgency=medium
* Epoch 1.7.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 25 Aug 2026 09:19:59 -0600
cosmic-edit (1.6.0) noble; urgency=medium
* Epoch 1.6.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 18 Aug 2026 07:13:06 -0600
cosmic-edit (1.5.0) noble; urgency=medium
* Epoch 1.5.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 28 Jul 2026 09:13:50 -0600
cosmic-edit (1.4.0) noble; urgency=medium
* Epoch 1.4.0 version update
-- Jeremy Soller <jeremy@system76.com> Mon, 20 Jul 2026 14:35:49 -0600
cosmic-edit (1.3.0) noble; urgency=medium
* Epoch 1.3.0 version update
-- Jeremy Soller <jeremy@system76.com> Sun, 12 Jul 2026 13:20:55 -0600
cosmic-edit (1.2.0) noble; urgency=medium
* Epoch 1.2.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 30 Jun 2026 12:20:53 -0600
cosmic-edit (1.1.0) noble; urgency=medium
* Epoch 1.1.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 23 Jun 2026 08:47:04 -0600
cosmic-edit (1.0.16) noble; urgency=medium
* Epoch 1.0.16 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 09 Jun 2026 10:25:21 -0600
cosmic-edit (1.0.15) noble; urgency=medium
* Epoch 1.0.15 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 02 Jun 2026 11:02:06 -0600
cosmic-edit (1.0.14) noble; urgency=medium
* Epoch 1.0.14 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 26 May 2026 08:30:39 -0600
cosmic-edit (1.0.13) noble; urgency=medium
* Epoch 1.0.13 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 12 May 2026 09:37:51 -0600
cosmic-edit (1.0.12) noble; urgency=medium
* Epoch 1.0.12 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 05 May 2026 10:23:41 -0600
cosmic-edit (1.0.11) noble; urgency=medium
* Epoch 1.0.11 version update

5
debian/rules vendored
View file

@ -1,15 +1,12 @@
#!/usr/bin/make -f
export DESTDIR = debian/cosmic-edit
export VENDOR ?= 1
%:
dh $@
override_dh_auto_clean:
if ! ischroot && test "${VENDOR}" = "1"; then \
just vendor; \
fi
ischroot || just vendor
override_dh_auto_build:
just build-vendored

View file

@ -1,4 +1,6 @@
tar-ignore=.github
tar-ignore=.vscode
tar-ignore=target/.rustc_info.json
tar-ignore=target/CACHEDIR.TAG
tar-ignore=target/debug
tar-ignore=target/release
tar-ignore=vendor
tar-ignore=target

View file

@ -49,7 +49,7 @@ settings = الإعدادات
### Appearance
appearance = المظهر
theme = النسق
theme = السمة
match-desktop = طابق سطح المكتب
dark = داكن
light = فاتح
@ -96,7 +96,7 @@ document-type = نوع المستند...
encoding = الترميز...
menu-git-management = إدارة Git...
print = اطبع
quit = أنهِ
quit = إنهِ
## Edit

View file

@ -0,0 +1,5 @@
cancel = Cancel·lar
quit = Surt
settings = Configuració
save = Desa
undo = Desfés

View file

@ -71,9 +71,9 @@ automatic-indentation = Automatické odsazení
tab-width = Šířka tabulátoru: { $tab_width }
convert-indentation-to-spaces = Převést odsazení na mezery
convert-indentation-to-tabs = Převést odsazení na tabulátory
word-wrap = Zalamování slov
word-wrap = Zalamování řádků
show-line-numbers = Zobrazit čísla řádků
highlight-current-line = Zvýraznění aktuálního řádku
highlight-current-line = Zvýraznit aktuální řádek
syntax-highlighting = Zvýraznění syntaxe...
menu-settings = Nastavení...
menu-keyboard-shortcuts = Klávesové zkratky...

View file

@ -0,0 +1,91 @@
save = Gem
cancel = Afbryd
quit = Afslut
cosmic-text-editor = COSMIC-teksteditor
new-document = Nyt dokument
open-project = Åbn project
repository = Pakkearkiv
todo = TODO
document-statistics = Dokument-statistikker
word-count = Antal ord
character-count = Tegn
character-count-no-spaces = Tegn (uden mellemrum)
line-count = Linjer
appearance = Udseende
git-management = Git-håndtering
theme = Tema
git-management-description = Git.håndtering er et udvikler-værktøj, som bruges til versionskontrol-operationer.
match-desktop = Følg skrivebordets indstillinger
git-management-loading = Indlæser Git-håndtering...
dark = Mørkt
stage = Bered
light = Lyst
staged-changes = Forberedte ændringer
file = Fil
unstage = Fjern fra forberedelse
unstaged-changes = Uforberedte ændringer
project-search = Projektsøgning
prompt-save-changes-title = Gem ændringer før lukning?
close-file = Luk fil
prompt-unsaved-changes = Du har ugemte ændringer. Hvis du fortsætter uden at gemme, vil disse ændringer gå tabt.
discard = Kassér ændringer
save-all = Gem alle
default-zoom-step = Zoom-trin
syntax-dark = Syntaks mørk
syntax-light = Syntaks lys
default-font = Standard skrifttype
default-font-size = Standard skriftstørrelse
keyboard-shortcuts = Tastaturgenveje
enable-vim-bindings = Aktivér Vim-bindinger
find-placeholder = Find...
find-previous = Find forrige
find-next = Find næste
replace-placeholder = Erstat...
replace = Erstat
replace-all = Erstat alle
case-sensitive = Forskel på store og små bogstaver
use-regex = Anvend regex
wrap-around = Omslut
new-file = Ny fil
new-window = Nyt vindue
open-file = Åbn fil...
open-recent-file = Åbn seneste fil
menu-open-project = Åbn projekt...
open-recent-project = Åbn seneste projekt
close-project = Luk projekt
edit = Redigér
save-as = Gem som...
copy = Kopiér
revert-all-changes = Tilbagefør alle ændringer
paste = Indsæt
menu-document-statistics = Dokument-statistikker...
select-all = Vælg alle
document-type = Dokumenttype...
find = Find
encoding = Kodning...
menu-git-management = Git-håndtering...
print = Udskriv
view = Vis
undo = Fortryd
redo = Omgør
cut = Klip
find-in-project = Find i projekt...
menu-settings = Indstillinger...
spell-check = Stavekontrol...
zoom-in = Zoom ind
default-size = Standardstørrelse
zoom-out = Zoom ud
indentation = Indrykning
automatic-indentation = Automatisk Indrykning
tab-width = Fanebladsbredde: { $tab_width }
convert-indentation-to-spaces = Konvertér indryk til mellemrum
convert-indentation-to-tabs = Konvertér indryk til tabulaturer
comment = Teksteditor til COSMIC-skrivebordet
menu-keyboard-shortcuts = Tastaturgenveje…
word-wrap = Tekstombrydning
show-line-numbers = Vis linjenumre
highlight-current-line = Fremhæv aktuel linje
syntax-highlighting = Syntaksfremhævning…
menu-about = Om COSMIC Teksteditor…
support = Support
settings = Indstillinger

View file

@ -21,7 +21,7 @@ line-count = Zeilen
git-management = Git-Verwaltung
git-management-description = Git-Verwaltung ist ein Entwicklerwerkzeug, das für die Versionskontrolle eingesetzt wird.
git-management-loading = Git-Verwaltung wird geladen...
git-management-loading = Git-Verwaltung wird geladen ...
stage = Vormerken
staged-changes = Vorgemerkte Änderungen
unstage = Nicht vormerken
@ -50,8 +50,8 @@ theme = Thema
match-desktop = An Desktop anpassen
dark = Dunkel
light = Hell
syntax-dark = Syntax dunkel
syntax-light = Syntax hell
syntax-dark = Dunkle Syntax
syntax-light = Helle Syntax
default-font = Standardschriftart
default-font-size = Standardschriftgröße
default-zoom-step = Zoomstufen
@ -61,10 +61,10 @@ default-zoom-step = Zoomstufen
keyboard-shortcuts = Tastenkombinationen
enable-vim-bindings = Vim-Kombinationen aktivieren
# Suchen
find-placeholder = Suchen...
find-placeholder = Suchen ...
find-previous = Vorherigen suchen
find-next = Nächsten suchen
replace-placeholder = Ersetzen...
replace-placeholder = Ersetzen ...
replace = Ersetzen
replace-all = Alles ersetzen
case-sensitive = Groß-/Kleinschreibung beachten
@ -79,19 +79,19 @@ wrap-around = Umlaufen
file = Datei
new-file = Neue Datei
new-window = Neues Fenster
open-file = Datei öffnen...
open-file = Datei öffnen ...
open-recent-file = Letzte Datei öffnen
close-file = Datei schließen
menu-open-project = Projekt öffnen...
menu-open-project = Projekt öffnen ...
open-recent-project = Letztes Projekt öffnen
close-project = Projekt schließen
save = Speichern
save-as = Speichern unter...
save-as = Speichern unter ...
revert-all-changes = Alle Änderungen rückgängig machen
menu-document-statistics = Dokument-Statistiken...
document-type = Dokumententyp...
encoding = Kodierung...
menu-git-management = Git-Verwaltung...
menu-document-statistics = Dokument-Statistiken ...
document-type = Dokumententyp ...
encoding = Kodierung ...
menu-git-management = Git-Verwaltung ...
print = Drucken
quit = Beenden
@ -105,8 +105,8 @@ copy = Kopieren
paste = Einfügen
select-all = Alles auswählen
find = Suchen
find-in-project = Im Projekt suchen...
spell-check = Rechtschreibprüfung...
find-in-project = Im Projekt suchen ...
spell-check = Rechtschreibprüfung ...
## Ansicht
@ -125,10 +125,10 @@ convert-indentation-to-tabs = Einrückung in Tabulatoren umwandeln
word-wrap = Zeilenumbruch
show-line-numbers = Zeilennummern anzeigen
highlight-current-line = Aktuelle Zeile hervorheben
syntax-highlighting = Syntaxhervorhebung...
menu-settings = Einstellungen...
menu-keyboard-shortcuts = Tastenkombinationen...
menu-about = Über COSMIC Texteditor...
repository = Repository
syntax-highlighting = Syntaxhervorhebung ...
menu-settings = Einstellungen ...
menu-keyboard-shortcuts = Tastenkombinationen ...
menu-about = Über COSMIC Texteditor ...
repository = Repositorium
support = Unterstützung
comment = Texteditor für den COSMIC Desktop

View file

@ -7,7 +7,7 @@ open-project = Άνοιγμα έργου
## Document statistics
document-statistics = Στατιστικά εγγράφου
word-count = Λέξεις
word-count = Πλήθος λέξεων
character-count = Χαρακτήρες
character-count-no-spaces = Χαρακτήρες (χωρίς κενά)
line-count = Γραμμές
@ -20,13 +20,13 @@ settings = Ρυθμίσεις
appearance = Εμφάνιση
theme = Θέμα
default-font = Γραμματοσειρά
default-font-size = Μέγεθος γραμματοσειράς
default-font = Προεπιλεγμένη γραμματοσειρά
default-font-size = Προεπιλεγμένο μέγεθος γραμματοσειράς
### Keyboard shortcuts
keyboard-shortcuts = Συντομεύσεις πλήκτρων
enable-vim-bindings = Ενεργοποίηση πλήκτρων vim
keyboard-shortcuts = Συντομεύσεις πληκτρολογίου
enable-vim-bindings = Ενεργοποίηση συντομεύσεων Vim
# Menu
@ -37,7 +37,7 @@ file = Αρχείο
new-file = Νέο αρχείο
new-window = Νέο παράθυρο
open-file = Άνοιγμα αρχείου...
todo = TODO
todo = Λίστα εργασιών
save = Αποθήκευση
save-as = Αποθήκευση ως...
revert-all-changes = Αναίρεση όλων των αλλαγών
@ -45,7 +45,7 @@ menu-document-statistics = Στατιστικά εγγράφου...
document-type = Τύπος εγγράφου...
encoding = Κωδικοποίηση...
print = Εκτύπωση
quit = Έξοδος
quit = Τερματισμός
## Edit
@ -62,23 +62,60 @@ spell-check = Έλεγχος ορθογραφίας...
## View
view = Προβολή
indentation = Εσοχές
indentation = Εσοχές κειμένου
### Indentation
automatic-indentation = Αυτόματη εισαγωγή εσοχών
tab-width = Πλάτος Tabs: { $tab_width }
convert-indentation-to-spaces = Μετατροπή εσοχών σε spaces
convert-indentation-to-tabs = Μετατροπή εσοχών σε tabs
word-wrap = Περιτύλιξη λέξεων
tab-width = Πλάτος στηλοθέτη: { $tab_width }
convert-indentation-to-spaces = Μετατροπή εσοχών σε κενά
convert-indentation-to-tabs = Μετατροπή εσοχών σε στηλοθέτες
word-wrap = Αναδίπλωση λέξεων
show-line-numbers = Εμφάνιση αριθμού γραμμών
highlight-current-line = Υπογράμμιση τρέχουσας γραμμής
syntax-highlighting = Υπογράμμιση συντακτικού...
highlight-current-line = Επισήμανση τρέχουσας γραμμής
syntax-highlighting = Επισήμανση συντακτικού...
menu-settings = Ρυθμίσεις...
menu-keyboard-shortcuts = Συντομεύσεις πλήκτρων...
menu-about = Σχετικά με τον επεξεργαστή κειμένου COSMIC...
menu-keyboard-shortcuts = Συντομεύσεις πληκτρολογίου...
menu-about = Σχετικά με την Επεξεργασία κειμένου COSMIC...
cancel = Ακύρωση
repository = Αποθετήριο
support = Υποστήριξη
dark = Σκοτεινό
light = Φωτεινό
dark = Σκουρόχρωμο
light = Ανοιχτόχρωμο
close-file = Κλείσιμο αρχείου
cosmic-text-editor = Επεξεργασία κειμένου COSMIC
find-placeholder = Εύρεση...
replace-placeholder = Αντικατάσταση...
match-desktop = Συμφωνία με την επιφάνεια εργασίας
discard = Απόρριψη αλλαγών
select-all = Επιλογή όλων
comment = Πρόγραμμα επεξεργασίας κειμένου για το περιβάλλον επιφάνειας εργασίας COSMIC
git-management = Διαχείριση Git
save-all = Αποθήκευση όλων
find-previous = Εύρεση προηγούμενου
find-next = Εύρεση επόμενου
replace-all = Αντικατάσταση όλων
close-project = Κλείσιμο έργου
menu-git-management = Διαχείριση Git...
find-in-project = Εύρεση στο έργο...
default-size = Προεπιλεγμένο μέγεθος
zoom-out = Σμίκρυνση
zoom-in = Μεγέθυνση
project-search = Αναζήτηση έργων
prompt-save-changes-title = Αποθήκευση των αλλαγών πριν από το κλείσιμο;
open-recent-file = Άνοιγμα πρόσφατου αρχείου
menu-open-project = Άνοιγμα έργου...
open-recent-project = Άνοιγμα πρόσφατου έργου
git-management-loading = Φόρτωση διαχείρισης Git...
prompt-unsaved-changes = Υπάρχουν μη αποθηκευμένες αλλαγές. Εάν συνεχίσετε χωρίς να κάνετε αποθήκευση, αυτές οι αλλαγές θα χαθούν.
case-sensitive = Διάκριση πεζών-κεφαλαίων
stage = Προετοιμασία
staged-changes = Προετοιμασμένες αλλαγές
unstage = Ακύρωση προετοιμασίας
unstaged-changes = Απροετοίμαστες αλλαγές
syntax-dark = Σκουρόχρωμο συντακτικό
syntax-light = Ανοιχτόχρωμο συντακτικό
default-zoom-step = Βήματα ζουμ
git-management-description = Η διαχείριση Git είναι ένα εργαλείο για προγραμματιστές που χρησιμοποιείται για λειτουργίες ελέγχου εκδόσεων.
use-regex = Χρήση κανονικών εκφράσεων
wrap-around = Αναδίπλωση

View file

@ -0,0 +1,91 @@
save = Save
quit = Quit
cancel = Cancel
settings = Settings
appearance = Appearance
theme = Theme
match-desktop = Match desktop
dark = Dark
file = File
close-file = Close file
syntax-light = Syntax light
cosmic-text-editor = COSMIC Text Editor
comment = Text editor for the COSMIC desktop
new-document = New document
open-project = Open project
todo = TODO
repository = Repository
support = Support
document-statistics = Document statistics
word-count = Word count
character-count = Characters
character-count-no-spaces = Characters (without spaces)
line-count = Lines
git-management = Git management
git-management-description = Git management is a developer tool used for version control operations.
keyboard-shortcuts = Keyboard shortcuts
replace = Replace
git-management-loading = Loading Git management...
stage = Stage
staged-changes = Staged changes
unstage = Unstage
unstaged-changes = Unstaged changes
project-search = Project search
prompt-save-changes-title = Save changes before closing?
prompt-unsaved-changes = You have unsaved changes. If you continue without saving, these changes will be lost.
discard = Discard changes
save-all = Save all
syntax-dark = Syntax dark
default-font = Default font
default-font-size = Default font size
default-zoom-step = Zoom steps
enable-vim-bindings = Enable Vim bindings
find-placeholder = Find...
find-previous = Find previous
find-next = Find next
replace-placeholder = Replace...
replace-all = Replace all
case-sensitive = Case sensitive
use-regex = Use regex
wrap-around = Wrap around
new-file = New file
new-window = New window
open-file = Open file...
open-recent-file = Open recent file
menu-open-project = Open project...
open-recent-project = Open recent project
close-project = Close project
save-as = Save as...
revert-all-changes = Revert all changes
menu-document-statistics = Document statistics...
document-type = Document type...
encoding = Encoding...
menu-git-management = Git management...
print = Print
light = Light
edit = Edit
undo = Undo
redo = Redo
cut = Cut
copy = Copy
paste = Paste
select-all = Select all
find = Find
find-in-project = Find in project...
spell-check = Spell check...
view = View
zoom-in = Zoom in
default-size = Default size
zoom-out = Zoom out
indentation = Indentation
automatic-indentation = Automatic Indentation
tab-width = Tab width: { $tab_width }
convert-indentation-to-spaces = Convert indentation to spaces
convert-indentation-to-tabs = Convert indentation to tabs
menu-keyboard-shortcuts = Keyboard shortcuts...
word-wrap = Word wrap
show-line-numbers = Show line numbers
highlight-current-line = Highlight current line
syntax-highlighting = Syntax highlighting...
menu-settings = Settings...
menu-about = About COSMIC Text Editor...

View file

@ -31,7 +31,7 @@ settings = Asetukset
appearance = Ulkoasu
theme = Teema
match-desktop = Sovita työpöytään
match-desktop = Sama kuin työpöytä
dark = Tumma
light = Vaalea
syntax-dark = Tumma syntaksi

0
i18n/fil/cosmic_edit.ftl Normal file
View file

91
i18n/gl/cosmic_edit.ftl Normal file
View file

@ -0,0 +1,91 @@
save = Gardar
cancel = Cancelar
cosmic-text-editor = Editor de Texto de COSMIC
comment = Editor de texto para o escritorio COSMIC
new-document = Novo documento
open-project = Abrir proxecto
todo = TODO
repository = Repositorio
support = Soporte
document-statistics = Estadisticas do documento
word-count = Reconto de palabras
character-count = Carácteres
character-count-no-spaces = Carácter (sen espazos)
line-count = Liñas
git-management = Xestion de Git
git-management-description = A xestión de Git é unha ferramenta de desenvolvemento utilizada para operacións de control de versións.
git-management-loading = Cargando a xestión de Git...
stage = Etapa
staged-changes = Cambios preparados
unstage = Sen preparar
unstaged-changes = Cambios sen preparar
project-search = Buscar proxecto
prompt-save-changes-title = Gardar os cambios antes de pechar?
prompt-unsaved-changes = Tes cambios sen gardar. Se continúas sen gardalos, estes cambios perderanse.
discard = Descartar cambios
save-all = Gardar todo
settings = Axustes
appearance = Apariencia
theme = Tema
match-desktop = Axustar ao escritorio
dark = Escuro
light = Claro
syntax-dark = Sintaxe escura
syntax-light = Sintaxe clara
default-font = Fonte por defecto
default-font-size = Tamaño de fonte por defecto
default-zoom-step = Pasos do zoom
keyboard-shortcuts = Atallos de teclado
enable-vim-bindings = Activar as asociacións de teclas de Vim
find-placeholder = Atopar…
find-previous = Atopar antes
find-next = Atopar seguinte
replace-placeholder = Remplazar…
replace = Remplazar
replace-all = Remplazar todo
case-sensitive = Distinguir maiúsculas e minúsculas
use-regex = Usar expresións regulares
wrap-around = Buscar de comezo a fin
file = Ficheiro
new-file = Novo ficheiro
new-window = Nova xanela
open-file = Abrir ficheiro…
open-recent-file = Abrir ficheiro recente
close-file = Pechar ficheiro
menu-open-project = Abrir proxecto…
open-recent-project = Abrir proxecto recente
close-project = Pechar proxecto
save-as = Gardar como…
revert-all-changes = Desvotar todos os cambios
menu-document-statistics = Estatísticas do documento...
document-type = Tipo de documento…
encoding = Codificación...
menu-git-management = Xestión de Git...
print = Imprimir
quit = Pechar
edit = Editar
undo = Desfacer
redo = Refacer
cut = Cortar
copy = Copiar
paste = Pegar
select-all = Seleccionar todo
find = Atopar
find-in-project = Atopar en proxecto…
spell-check = Corrección ortográfica...
view = Ver
zoom-in = Aumentar Zoom
default-size = Tamaño por defecto
zoom-out = Afastar Zoom
indentation = Sangría
automatic-indentation = Sangría automatica
tab-width = Largura da tabulación:{ $tab_width }
convert-indentation-to-spaces = Converter a sangria en espazos
convert-indentation-to-tabs = Converter a sangría en tabulacións
word-wrap = Axuste de liña
show-line-numbers = Amosar o numero de liñas
highlight-current-line = Subrayar a liña actual
syntax-highlighting = Realce da sintaxe...
menu-settings = Axustes...
menu-keyboard-shortcuts = Atallos de teclado…
menu-about = Sobre Editor de Texto COSMIC…

View file

@ -1,7 +1,7 @@
cosmic-text-editor = कॉस्मिक टेक्स्ट एडिटर
new-document = नया दस्तावेज़
open-project = प्रोजेक्ट खोलें
todo = करने के लिए
todo = कार्य-सूची
# Context Pages
@ -13,41 +13,41 @@ todo = करने के लिए
document-statistics = दस्तावेज़ आँकड़े
word-count = शब्दों की संख्या
character-count = अक्षरों की संख्या
character-count-no-spaces = अक्षरों की संख्या (स्पेस के बिना)
character-count = अक्षर
character-count-no-spaces = अक्षर (बिना स्थान के)
line-count = पंक्तियाँ
## Git management
git-management = Git प्रबंधन
git-management-description = Git प्रबंधन एक डेवलपर टूल है जो संस्करण नियंत्रण कार्यों के लिए उपयोग किया जाता है।
git-management-loading = Git प्रबंधन लोड हो रहा है...
stage = स्टेज
staged-changes = स्टेज पर बदली गई चीज़ें
unstage = स्टेज से हटाएँ
unstaged-changes = बिना स्टेज की गई चीज़ें
git-management = गिट प्रबंधन
git-management-description = गिट प्रबंधन एक डेवलपर उपकरण है जिसका उपयोग संस्करण नियंत्रण संचालन के लिए किया जाता है।
git-management-loading = गिट प्रबंधन लोड हो रहा है..।
stage = स्टेज करें
staged-changes = स्टेज किए गए बदलाव
unstage = अनस्टेज करें
unstaged-changes = अनस्टेज किए गए बदलाव
## Project search
project-search = प्रोजेक्ट खोज
project-search = परियोजना खोज
## Prompt save changes
prompt-save-changes-title = बिना सहेजे हुए बदलाव
prompt-unsaved-changes = आपके पास बिना सहेजे हुए बदलाव हैं। सहेजना है?
cancel = रद्द करो
discard = बदलाव को खारिज करें
save-all = सब कुछ सहेजें
prompt-save-changes-title = बंद करने से पहले बदलाव सहेजें?
prompt-unsaved-changes = आपके पास अनसहेजे बदलाव हैं। यदि आप बिना सहेजे जारी रखते हैं, तो ये बदलाव नष्ट हो जाएँगे।
cancel = रद्द करें
discard = बदलावों को खारिज करें
save-all = सभी सहेजें
## Settings
settings = सेटिंग
settings = सेटिंग्स
### Appearance
appearance = दिखावट
theme = थीम
match-desktop = डेस्कटॉप से मेल करें
appearance = रुप-रंग
theme = प्रसंग
match-desktop = डेस्कटॉप से मेल खाएँ
dark = डार्क
light = लाइट
syntax-dark = सिंटैक्स डार्क
@ -60,14 +60,14 @@ default-font-size = डिफ़ॉल्ट फ़ॉन्ट आकार
keyboard-shortcuts = कीबोर्ड शॉर्टकट्स
enable-vim-bindings = Vim बाइंडिंग्स सक्षम करें
# Find
find-placeholder = खोजें...
find-placeholder = खोजें..।
find-previous = पिछला खोजें
find-next = अगला खोजें
replace-placeholder = बदलें...
replace-placeholder = बदलें..।
replace = बदलें
replace-all = सब कुछ बदलें
case-sensitive = केस-सेंसिटिव
use-regex = Regex का उपयोग करें
case-sensitive = अक्षर संवेदनशील
use-regex = रिगैक्स का उपयोग करें
# Menu
@ -77,34 +77,34 @@ use-regex = Regex का उपयोग करें
file = फ़ाइल
new-file = नई फ़ाइल
new-window = नई विंडो
open-file = फ़ाइल खोलें...
open-file = फ़ाइल खोलें..।
open-recent-file = हाल की फ़ाइल खोलें
close-file = फ़ाइल बंद करें
menu-open-project = प्रोजेक्ट खोलें...
open-recent-project = हाल का प्रोजेक्ट खोलें
close-project = प्रोजेक्ट बंद करें
menu-open-project = परियोजना खोलें..।
open-recent-project = हालिया परियोजना खोलें
close-project = परियोजना बंद करें
save = सहेजें
save-as = इस रूप में सहेजें...
save-as = इस रूप में सहेजें..।
revert-all-changes = सभी बदलावों को पलटें
menu-document-statistics = दस्तावेज़ आँकड़े...
document-type = दस्तावेज़ प्रकार...
encoding = एन्कोडिंग...
menu-git-management = Git प्रबंधन...
print = प्रिंट करें
quit = बंद करें
menu-document-statistics = दस्तावेज़ आँकड़े..।
document-type = दस्तावेज़ प्रकार..।
encoding = एनकोडिंग..।
menu-git-management = गिट प्रबंधन..।
print = छापें
quit = बाहर जाएँ
## Edit
edit = संपादित करें
edit = संपादन
undo = पूर्ववत करें
redo = फिर से करें
cut = काटें
copy = कॉपी करें
paste = पेस्ट करें
select-all = सब कुछ चुनें
paste = चिपकाएँ
select-all = सभी चुनें
find = खोजें
find-in-project = प्रोजेक्ट में खोजें...
spell-check = वर्तनी की जांच...
find-in-project = परियोजना में खोजें..।
spell-check = वर्तनी जाँच..।
## View
@ -116,13 +116,19 @@ indentation = इंडेंटेशन
automatic-indentation = स्वचालित इंडेंटेशन
tab-width = टैब चौड़ाई: { $tab_width }
convert-indentation-to-spaces = इंडेंटेशन को स्पेस में बदलें
convert-indentation-to-tabs = इंडेंटेशन को टैब्स में बदलें
word-wrap = वर्ड रैप
convert-indentation-to-tabs = इंडेंटेशन को टैब में बदलें
word-wrap = शब्द लपेटन
show-line-numbers = पंक्ति संख्या दिखाएँ
highlight-current-line = वर्तमान पंक्ति को हाइलाइट करें
syntax-highlighting = सिंटैक्स हाइलाइटिंग...
menu-settings = सेटिंग्स...
menu-keyboard-shortcuts = कीबोर्ड शॉर्टकट्स...
menu-about = कॉस्मिक टेक्स्ट एडिटर के बारे में...
syntax-highlighting = सिंटैक्स हाइलाइटिंग..।
menu-settings = सेटिंग्स..।
menu-keyboard-shortcuts = कीबोर्ड शॉर्टकट्स..।
menu-about = कॉस्मिक टेक्स्ट एडिटर के बारे में..।
repository = रिपॉजिटरी
support = सहायता
support = समर्थन
comment = कॉस्मिक डेस्कटॉप के लिए टेक्स्ट एडिटर
default-zoom-step = ज़ूम चरण
wrap-around = लपेटें
zoom-in = बड़ा करें
default-size = मूल आकार
zoom-out = छोटा करें

View file

@ -25,8 +25,8 @@ git-management-description = A Git-kezelő egy verziókezeléssel kapcsolatos fe
git-management-loading = Git-kezelő betöltése…
stage = Előkészítés
staged-changes = Előkészített változtatások
unstage = Változtatások visszavonása előkészítésből
unstaged-changes = Előkészítésből visszavont változtatások
unstage = Előkészítés visszavonása
unstaged-changes = Nem előkészített változtatások
## Project search
@ -35,7 +35,7 @@ project-search = Projektkereső
## Prompt save changes
prompt-save-changes-title = Mented a változtatásokat bezárás előtt?
prompt-unsaved-changes = Vannak nem mentett változtatások. Ha nem mentesz, ezek el fognak veszni!
prompt-unsaved-changes = Vannak nem mentett változtatások. Ha nem mentesz, ezek el fognak veszni.
cancel = Mégse
discard = Változtatások elvetése
save-all = Összes mentése
@ -60,7 +60,7 @@ default-zoom-step = Nagyítási mérték
### Keyboard shortcuts
keyboard-shortcuts = Gyorsbillentyűk
enable-vim-bindings = Vim billentyűkombinációk engedélyezése
enable-vim-bindings = Vim-billentyűkombinációk engedélyezése
# Find
find-placeholder = Keresés…
find-previous = Előző találat
@ -68,7 +68,7 @@ find-next = Következő találat
replace-placeholder = Csere…
replace = Csere
replace-all = Összes lecserélése
case-sensitive = Kis- és nagybetű érzékenység
case-sensitive = Kis- és nagybetű-érzékenység
use-regex = Regex használata
wrap-around = Körbefutás
@ -100,7 +100,7 @@ quit = Kilépés
edit = Szerkesztés
undo = Visszavonás
redo = Visszaállítás
redo = Újra
cut = Kivágás
copy = Másolás
paste = Beillesztés

View file

@ -18,7 +18,7 @@ appearance = Tampilan
git-management = Pengelolaan Git
theme = Tema
git-management-description = Pengelolaan Git adalah alat pengembang yang digunakan untuk operasi pengendalian versi.
match-desktop = Cocokkan desktop
match-desktop = Cocok desktop
menu-settings = Pengaturan...
git-management-loading = Memuat pengelolaan Git...
staged-changes = Perubahan yang bertahap

View file

@ -1,8 +1,8 @@
cosmic-text-editor = COSMIC Text Editor
comment = Editor di testo di COSMIC
cosmic-text-editor = Editor di testo COSMIC
comment = Editor di testo per il desktop COSMIC
new-document = Nuovo documento
open-project = Apri progetto
todo = TODO
todo = A fare
# Context Pages
@ -15,15 +15,15 @@ support = Supporto
## Document statistics
document-statistics = Statistiche documento
word-count = Conteggio parole
word-count = Conteggio delle parole
character-count = Caratteri
character-count-no-spaces = Caratteri (senza spazi)
line-count = Righe
line-count = Linee
## Git management
git-management = Gestione Git
git-management-description = Gestione Git è uno strumento per sviluppatori, usato per le operazioni di controllo versione.
git-management-description = Gestione Git è uno strumento per sviluppatori, usato per le operazioni di controllo di versione.
git-management-loading = Caricamento Gestione Git...
stage = Prepara modifiche
staged-changes = Modifiche preparate
@ -35,8 +35,8 @@ project-search = Ricerca nel progetto
## Prompt save changes
prompt-save-changes-title = Modifiche non salvate
prompt-unsaved-changes = Hai delle modifiche non salvate. Vuoi salvarle?
prompt-save-changes-title = Salvare le modifiche prima di chiudere?
prompt-unsaved-changes = Sono presenti modifiche non salvate. Se continui senza salvare, queste modifiche andranno perse.
cancel = Annulla
discard = Ignora modifiche
save-all = Salva tutto
@ -49,7 +49,7 @@ settings = Impostazioni
appearance = Aspetto
theme = Tema
match-desktop = Sistema
match-desktop = Abbina al desktop
dark = Scuro
light = Chiaro
syntax-dark = Sintassi scura
@ -89,8 +89,8 @@ close-project = Chiudi progetto
save = Salva
save-as = Salva come...
revert-all-changes = Annulla tutte le modifiche
menu-document-statistics = Statistiche documento...
document-type = Tipo documento...
menu-document-statistics = Statistiche di documento...
document-type = Tipo di documento...
encoding = Codifica...
menu-git-management = Gestione Git...
print = Stampa

View file

@ -1,9 +1,9 @@
cancel = Sefsex
cancel = Semmet
undo = Ssemmet
save = Sekles
quit = Tuffɣa
quit = Ffeɣ
replace = Semselsi
support = Tallalt
support = Tallelt
settings = Iɣewwaṛen
appearance = Timeẓri
theme = Asentel
@ -16,7 +16,7 @@ default-size = Tiddi tamezwert
zoom-out = Asemẓi
view = Wali
menu-settings = Iɣewwaṛen…
match-desktop = Amṣada d tnarit
match-desktop = Semṣada akked tnarit
file = Afaylu
new-window = Asfaylu amaynut
edit = Ẓreg

View file

@ -5,11 +5,11 @@ replace = Алмастыру
repository = Репозиторий
support = Қолдау
settings = Баптаулар
appearance = Сыртқы түрі
theme = Тақырып
match-desktop = Жұмыс үстеліне сәйкес келу
dark = Қараңғы
light = Жарық
appearance = Сыртқы көрініс
theme = Тема
match-desktop = Жұмыс үстеліне сәйкес болу
dark = Қою
light = Ашық
file = Файл
new-window = Жаңа терезе
quit = Шығу

View file

@ -0,0 +1,91 @@
save = Tomar bike
cancel = Têk bibe
undo = Vegerîne
cosmic-text-editor = Edîtorê nivîsê ya COSMIC
stage = Ast
settings = Sazkarî
appearance = Xuyang
theme = Rûkar
dark = Tarî
light = Ronî
support = Piştgirî
quit = Biqedîne
find-placeholder = Bibîne...
copy = Jê bigire
paste = Pê ve bike
match-desktop = Bi sermaseyê re li hev bîne
select-all = Hemûyan hilbijêre
zoom-in = Nêzîk bike
default-size = Mezinahiya berdest
zoom-out = Dûr bike
file = Pel
default-zoom-step = Gavên nêzîkbûnê
keyboard-shortcuts = Kurteriyên kilîtdankê
menu-keyboard-shortcuts = Kurteriyên kilîtdankê...
find-previous = Yê paş bibîne
find-next = Yê pêş bibîne
new-window = Çarçoveya nû
edit = Biguhêrîne
view = Dîtin
menu-settings = Sazkarî...
close-file = Pelê bigire
cut = Jê bike
new-document = Pelbenda nû
open-project = Projeyê veke
line-count = Rêz
repository = Embar
print = Çap bike
replace = Biguhêrîne
find = Bibîne
comment = Edîtorê nivîsê ji bo sermaseya COSMIC
todo = Erk
document-statistics = Amarên pelbendê
word-count = Jimara peyvan
character-count = Tîp
character-count-no-spaces = Tîp (bê valahî)
git-management = Rêveberiya Gitê
git-management-description = Rêveberiya Gitê amûreke pêşvebiran e ku ji bo pêvajoyên kontrolkirina guhertoyan tê bikaranîn.
git-management-loading = Rêveberiya Gitê tê barkirin...
staged-changes = Guhertinên amedekirî
unstage = Ji amedekariyê derxîne
unstaged-changes = Guhertinên ne amedekirî
project-search = Lêgerîna projeyê
prompt-save-changes-title = Berî girtinê guhertinan tomar bike?
prompt-unsaved-changes = Guhertinên te yên netomarkirî hene. Ku tu bê tomarkirinê bidomînî, ev guhertin wê winda bibin.
discard = Guhertinan paşguh bike
save-all = Hemûyan tomar bike
syntax-dark = Syntaxa tarî
syntax-light = Rêzamana ronî
default-font = Cûrenivîsa berdest
default-font-size = Mezinahiya cûrenivîsê ya berdest
enable-vim-bindings = Girêdanên Vim çalak bike
replace-placeholder = Biguhêrîne...
replace-all = Hemûyan biguhêrîne
case-sensitive = Hestiyar e li hember tîpên mezin/biçûk
use-regex = Regexê bi kar bîne
wrap-around = Pêçana dorhêlê
new-file = Pela nû
open-file = Pelê veke...
open-recent-file = Pelê dawî veke
menu-open-project = Projeyê veke...
open-recent-project = Projeya dawî veke
close-project = Projeyê bigire
save-as = Tomar bike wekî...
revert-all-changes = Hemû guhertinan vegerîne
menu-document-statistics = Amarên pelbendê...
document-type = Cûreyê pelbendê...
encoding = Tê kodkirin...
menu-git-management = Rêveberiya Gitê...
redo = Dûbare bike
find-in-project = Di projeyê de bibîne...
spell-check = Kontrola rastnivîsê...
indentation = Valahiya destpêkê
automatic-indentation = Valahiya destpêkê ya xweber
tab-width = Ferehiya rûgerê: { $tab_width }
convert-indentation-to-spaces = Indentationê vegerîne valahiyan
convert-indentation-to-tabs = Valahiya destpêkê biguhêrîne bo rûgeran
word-wrap = Pêçana peyvan
show-line-numbers = Jimarên rêzan nîşan bide
highlight-current-line = Rêza heyî ronî bike
syntax-highlighting = Ronîkirina syntaxê...
menu-about = Di derbarê edîtorê nivîsê ya COSMIC de...

0
i18n/lo/cosmic_edit.ftl Normal file
View file

View file

@ -14,7 +14,7 @@ line-count = Eilučių skaičius
## Settings
settings = Nustatymai
settings = Nuostatai
## Appearance
@ -25,7 +25,7 @@ default-font-size = Numatytas šrifto dydis
### Keyboard shortcuts
keyboard-shortcuts = Klaviatūros greitieji klavišai
keyboard-shortcuts = Spartieji klavišai
enable-vim-bindings = Naudoti Vim sąsajas
# Menu
@ -36,28 +36,28 @@ enable-vim-bindings = Naudoti Vim sąsajas
file = Failas
new-file = Naujas failas
new-window = Naujas langas
open-file = Atidaryti failą...
open-file = Atverti failą...
todo = TODO
save = Išsaugoti
save-as = Išsaugoti kaip...
revert-all-changes = Atstatyti visus pakeitimus
revert-all-changes = Atšaukti visus keitimus
menu-document-statistics = Apie dokumentą...
document-type = Dokumento tipas...
encoding = Kodavimas...
encoding = Koduotė...
print = Spausdinti
quit = Išeiti
quit = Išjungti
## Edit
edit = Redaguoti
undo = Anuliuoti
redo = Atkurti
redo = Grąžinti
cut = Iškirpti
copy = Kopijuoti
paste = Įklijuoti
find = Surasti
replace = Pakeisti
spell-check = Rašybos tikrinimas...
paste = Įdėti
find = Rasti
replace = Keisti
spell-check = Tikrinti rašybą...
## View
@ -70,50 +70,51 @@ automatic-indentation = Automatinė įtrauka
tab-width = Tabuliavimo žingsnio plotis: { $tab_width }
convert-indentation-to-spaces = Pakeisti įtrauką tarpais
convert-indentation-to-tabs = Pakeisti įtrauką tabuliavimo žingsniu
word-wrap = Žodžių perkėlimas
word-wrap = Žodžių kėlimas
show-line-numbers = Rodyti eilučių numerius
highlight-current-line = Paryškinti dabartinę eilutę
syntax-highlighting = Sintaksės tikrinimas...
menu-settings = Nustatymai...
menu-keyboard-shortcuts = Klaviatūros greitieji klavišai...
menu-about = Apie COSMIC Text Editor...
menu-settings = Nuostatai...
menu-keyboard-shortcuts = Spartieji klavišai...
menu-about = Apie COSMIC Rašyklę...
cancel = Atšaukti
repository = Saugykla
support = Palaikymas
cosmic-text-editor = COSMIC Text Editor
cosmic-text-editor = COSMIC Rašyklė
git-management = Git valdymas
git-management-description = Git valdymas - kūrėjų įrankis, naudojamas versijų kontrolės sistemos operacijoms įvykdyti.
git-management-loading = Kraunamas Git valdymas...
save-all = Išsaugoti viską
syntax-dark = Tamsi sintaksė
default-zoom-step = Priartinimo žingsniai
open-recent-file = Atidaryti pastararąjį failą
default-zoom-step = Artinimo žingsniai
open-recent-file = Atverti pastarąjį failą
close-file = Uždaryti failą
menu-open-project = Atidaryti projektą...
open-recent-project = Atidaryti pastarąjį projektą
close-project = Uždaryti projektą
select-all = Pažymėti viską
select-all = Žymėti viską
find-in-project = Ieškoti projekte...
zoom-in = Priartinti
zoom-in = Artinti
default-size = Numatytas dydis
zoom-out = Nutolinti
zoom-out = Tolinti
menu-git-management = Git valdymas...
staged-changes = Patvirtinti pokyčiai
unstaged-changes = Nepatvirtinti pokyčiai
staged-changes = Patvirtinti keitimai
unstaged-changes = Nepatvirtinti keitimai
prompt-save-changes-title = Išsaugoti pakeitimus prieš uždarant?
prompt-unsaved-changes = Yra neišsaugotų pakeitimų. Jeigu tęsite neišsaugojus, jūsų pakeitimai bus prarasti.
discard = Pašalinti pakeitimus
prompt-unsaved-changes = Yra neišsaugotų keitimų. Jei tęsite neišsaugoję, šie keitimai dings.
discard = Pašalinti keitimus
match-desktop = Pagal darbalaukio temą
find-placeholder = Surasti...
find-previous = Atgalinis ieškojimas
find-next = Ieškoti sekančio
replace-placeholder = Pakeisti...
find-placeholder = Rasti...
find-previous = Ieškoti ankstesnio
find-next = Ieškoti tolesnio
replace-placeholder = Keisti...
replace-all = Pakeisti visus
case-sensitive = Skirti raidžių dydžius
use-regex = Naudoti regex
wrap-around = Kelti į sekančią eilutę
wrap-around = Laikinai skaidyti eilutes
stage = Patvirtinti pakeitimai
project-search = Paieška projekte
dark = Tamsus
light = Šviesus
comment = COSMIC desktop teksto redaktorius
comment = COSMIC aplinkos rašyklė
unstage = Atšaukti patvirtinimą

View file

@ -1 +1,13 @@
settings = Paramètres
settings = Configuracion
appearance = Aparéncia
theme = Tèma
match-desktop = Assortir al burèu
dark = Escur
light = Clar
file = Fichièr
close-file = Tampar lo fichièr
cancel = Anullar
repository = Depaus
menu-settings = Configuracion...
quit = Quitar
replace = Remplaçar

View file

@ -3,11 +3,11 @@ support = ਸਹਿਯੋਗ
settings = ਸੈਟਿੰਗਾਂ
appearance = ਦਿੱਖ
theme = ਥੀਮ
match-desktop = ਡੈਸਕਟਾਪ ਨਾਲ ਮਿਲਦਾ
match-desktop = ਡੈਸਕਟਾਪ ਨਾਲ ਮਿਲਾਓ
dark = ਗੂੜ੍ਹਾ
light = ਹਲਕਾ
light = ਫਿੱਕਾ
default-zoom-step = ਜ਼ੂਮ ਸਟੈਪ
quit = ਬਾਹਰ
quit = ਸਮਾਪਤ
edit = ਸੋਧੋ
copy = ਕਾਪੀ ਕਰੋ
paste = ਚੇਪੋ

View file

@ -1,5 +1,5 @@
cosmic-text-editor = Edytor Tekstu COSMIC
comment = Edytor tekstu pulpitu COSMIC
comment = Edytor tekstu dla środowiska COSMIC
new-document = Nowy dokument
open-project = Otwórz projekt
todo = TODO
@ -64,7 +64,7 @@ default-zoom-step = Stopniowanie powiększania
keyboard-shortcuts = Skróty klawiszowe
enable-vim-bindings = Włącz tryb Vim
# Find
find-placeholder = Szukaj…
find-placeholder = Wyszukaj…
find-previous = Znajdź poprzedni
find-next = Znajdź następny
replace-placeholder = Zastąp…
@ -95,7 +95,7 @@ document-type = Typ dokumentu…
encoding = Kodowanie…
menu-git-management = Zarządzanie git…
print = Drukuj
quit = Zamknij
quit = Zakończ
## Edit
@ -106,8 +106,8 @@ cut = Wytnij
copy = Kopiuj
paste = Wklej
select-all = Zaznacz wszystko
find = Szukaj
find-in-project = Szukaj w projekcie…
find = Wyszukaj
find-in-project = Wyszukaj w projekcie…
spell-check = Sprawdź ortografię…
## View

View file

@ -94,7 +94,7 @@ document-type = Tipo de documento...
encoding = Codificação...
menu-git-management = Gerenciamento do Git...
print = Imprimir
quit = Sair
quit = Encerrar
## Edit

View file

@ -94,7 +94,7 @@ document-type = Тип документа...
encoding = Кодировка...
menu-git-management = Управление Git...
print = Печать
quit = Выйти
quit = Завершить
## Edit

2
i18n/sat/cosmic_edit.ftl Normal file
View file

@ -0,0 +1,2 @@
cancel = ᱵᱟᱹᱛᱤᱞ
save = ᱥᱟᱧᱪᱟᱣ

View file

@ -0,0 +1,91 @@
quit = Изађи
cancel = Откажи
settings = Подешавања
appearance = Изглед
dark = Тамна
light = Светла
replace = Замени
save = Сачувај
undo = Опозови
repository = Ризница
support = Подршка
theme = Тема
match-desktop = Прати радну површину
file = Датотека
new-window = Нови прозор
edit = Уреди
cut = Исеци
copy = Умножи
paste = Залепи
select-all = Означи све
zoom-in = Увећајте приказ
default-size = Подразумевана величина
zoom-out = Умањите приказ
view = Преглед
menu-settings = Подешавања...
cosmic-text-editor = Космик уређивач текста
comment = Уређивач текста за Космик радну површину
new-document = Нови документ
open-project = Отвори пројекат
todo = УРАДИТИ
document-statistics = Статистика документа
word-count = Број речи
character-count = Знакови
character-count-no-spaces = Знакови (без размака)
line-count = Редови
git-management = Управљање Гитом
git-management-description = Управљање Гитом је алат за програмере који се користи за радње управљања издањима.
git-management-loading = Учитавање управљања Гитом...
stage = Припреми
staged-changes = Припремљене измене
unstage = Поништи припрему
unstaged-changes = Неприпремљене измене
project-search = Претрага пројекта
prompt-save-changes-title = Сачувај измене пре затварања?
prompt-unsaved-changes = Имате несачуване измене. Ако наставите без сачувања, ове измене ће бити изгубљене.
discard = Одбаци измене
save-all = Сачувај све
syntax-dark = Тамна синтакса
syntax-light = Светла синтакса
default-font = Подразумевани фонт
default-font-size = Подразумевана величина фонта
default-zoom-step = Кораци увећања
keyboard-shortcuts = Пречице тастатуре
enable-vim-bindings = Омогући Вим везивања
find-placeholder = Пронађи...
find-previous = Нађи претходно
find-next = Нађи следеће
replace-placeholder = Замени…
replace-all = Замени све
case-sensitive = Разликује величину слова
use-regex = Употреби регуларни израз
wrap-around = Преламај около
new-file = Нова датотека
open-file = Отвори датотеку...
open-recent-file = Отвори недавну датотеку
close-file = Затвори датотеку
menu-open-project = Отвори пројекат...
open-recent-project = Отвори недавни пројекат
close-project = Затвори пројекат
save-as = Сачувај као...
revert-all-changes = Врати све измене
menu-document-statistics = Статистика документа...
document-type = Врста документа...
encoding = Кодирање...
menu-git-management = Управљање Гитом...
print = Штампај
redo = Понови
find = Пронађи
find-in-project = Пронађи у пројекту...
spell-check = Провера правописа...
indentation = Увлачење
automatic-indentation = Самостално увлачење
tab-width = Ширина табулатора: { $tab_width }
convert-indentation-to-spaces = Претворите увлачење у размаке
convert-indentation-to-tabs = Претворите увлачење у табулаторе
word-wrap = Прелом речи
show-line-numbers = Приказује бројеве редова
highlight-current-line = Истиче текући ред
syntax-highlighting = Истицање синтаксе...
menu-keyboard-shortcuts = Пречице на тастатури...
menu-about = О Космик уређивачу текста...

View file

@ -119,7 +119,7 @@ word-wrap = Radbrytning
show-line-numbers = Visa radnummer
highlight-current-line = Markera aktuell rad
syntax-highlighting = Syntaxmarkering...
menu-settings = Inställningar…
menu-settings = Inställningar...
menu-keyboard-shortcuts = Tangentbordsgenvägar...
menu-about = Om COSMIC Textredigerare…
cosmic-text-editor = COSMIC Textredigerare

View file

@ -0,0 +1,6 @@
cancel = ยกเลิก
settings = การตั้งค่า
dark = มืด
light = สว่าง
replace = แทนที่
appearance = ลักษณะ

View file

@ -90,7 +90,7 @@ document-type = Тип документа...
encoding = Кодування...
menu-git-management = Керування Git...
print = Друкувати
quit = Вийти
quit = Завершити
## Edit

View file

@ -1,5 +1,5 @@
cosmic-text-editor = COSMIC 文字編輯器
new-document = 新建文件
new-document = 新文件
open-project = 開啟專案
todo = 待辦事項
@ -71,8 +71,8 @@ use-regex = 使用正規表示式
## File
file = 檔案
new-file = 新建檔案
new-window = 新建視窗
new-file = 新增檔案
new-window = 新增視窗
open-file = 開啟檔案...
open-recent-file = 開啟最近使用的檔案
close-file = 關閉檔案
@ -87,7 +87,7 @@ document-type = 文件類型...
encoding = 編碼...
menu-git-management = Git 管理...
print = 列印
quit = 退出
quit = 結束
## Edit
@ -124,7 +124,7 @@ stage = 暫存
unstage = 取消暫存
cancel = 取消
save-all = 全部儲存
repository = 軟體庫源
repository = 軟體庫
support = 支援
default-zoom-step = 縮放步進
zoom-in = 放大

View file

@ -5,7 +5,7 @@ Exec=cosmic-edit %F
Terminal=false
Type=Application
StartupNotify=true
MimeType=text/plain;
MimeType=text/plain;application/x-zerosize;
Icon=com.system76.CosmicEdit
Categories=COSMIC;Utility;TextEditor;
Keywords=Text;Editor;

View file

@ -26,6 +26,9 @@ pub fn key_binds() -> HashMap<KeyBind, Action> {
bind!([Ctrl], Key::Character("f".into()), Find);
bind!([Ctrl], Key::Character("h".into()), FindAndReplace);
bind!([Ctrl], Key::Character("v".into()), Paste);
bind!([Shift], Key::Named(Named::Insert), Paste);
bind!([Ctrl], Key::Named(Named::Insert), Copy);
bind!([Shift], Key::Named(Named::Delete), Cut);
bind!([Ctrl], Key::Character("t".into()), NewFile);
bind!([Ctrl], Key::Character("n".into()), NewWindow);
bind!([Ctrl], Key::Character("o".into()), OpenFileDialog);

View file

@ -11,7 +11,7 @@ use cosmic::{
cosmic_theme, executor,
font::Font,
iced::{
self, Alignment, Background, Color, Length, Limits, Point, Subscription,
self, Alignment, Background, Color, Length, Limits, Subscription,
advanced::graphics::text::font_system,
clipboard, event,
futures::{self, SinkExt},
@ -194,6 +194,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
pub enum Action {
Todo,
NoOp,
About,
CloseFile,
CloseProject(usize),
@ -244,6 +245,7 @@ impl Action {
fn message(&self, entity_opt: Option<Entity>) -> Message {
match self {
Self::Todo => Message::Todo,
Self::NoOp => Message::NoOp,
Self::About => Message::ToggleContextPage(ContextPage::About),
Self::CloseFile => Message::CloseFile,
Self::CloseProject(project_i) => Message::CloseProject(*project_i),
@ -366,11 +368,12 @@ pub enum Message {
GitProjectStatus(Vec<(String, PathBuf, Vec<GitStatus>)>),
GitStage(PathBuf, PathBuf),
GitUnstage(PathBuf, PathBuf),
Key(Modifiers, keyboard::Key),
Key(Modifiers, keyboard::key::Physical, keyboard::Key),
LaunchUrl(String),
Modifiers(Modifiers),
NewFile,
NewWindow,
NoOp,
NotifyEvent(notify::Event),
NotifyWatcher(WatcherWrapper),
OpenFile(PathBuf),
@ -400,7 +403,7 @@ pub enum Message {
SaveAsResult(segmented_button::Entity, DialogResult),
Scroll(f32),
SelectAll,
Surface(surface::Action),
Surface(surface::Action<Message>),
SystemThemeModeChange(cosmic_theme::ThemeMode),
SyntaxTheme(usize, bool),
TabActivate(segmented_button::Entity),
@ -409,7 +412,7 @@ pub enum Message {
TabClose(segmented_button::Entity),
TabCloseForce(segmented_button::Entity),
TabContextAction(segmented_button::Entity, Action),
TabContextMenu(segmented_button::Entity, Option<Point>),
TabContextMenu(segmented_button::Entity, bool),
TabNext,
TabPrev,
TabSetCursor(segmented_button::Entity, Cursor),
@ -691,13 +694,7 @@ impl App {
return Some(NewTab::Exists(entity));
}
// Add to recent files, ensuring only one entry
self.config_state.recent_files.retain(|x| x != &canonical);
self.config_state
.recent_files
.push_front(canonical.to_path_buf());
self.config_state.recent_files.truncate(10);
self.save_config_state();
self.add_to_recents(&canonical);
let mut tab = EditorTab::new(&self.config);
tab.open(canonical);
@ -707,6 +704,15 @@ impl App {
}
}
fn add_to_recents(&mut self, canonical: &PathBuf) {
self.config_state.recent_files.retain(|x| x != canonical);
self.config_state
.recent_files
.push_front(canonical.to_path_buf());
self.config_state.recent_files.truncate(10);
self.save_config_state();
}
fn update_config(&mut self) -> Task<Message> {
//TODO: provide iterator over data
let entities: Vec<_> = self.tab_model.iter().collect();
@ -1455,6 +1461,7 @@ impl Application for App {
.author("System76")
.comments(fl!("comment"))
.license("GPL-3.0-only")
.license_url("https://spdx.org/licenses/GPL-3.0-only")
.developers([("Jeremy Soller", "jeremy@system76.com")])
.links([
(fl!("repository"), "https://github.com/pop-os/cosmic-edit"),
@ -2124,9 +2131,9 @@ impl Application for App {
|x| x,
);
}
Message::Key(modifiers, key) => {
Message::Key(modifiers, physical, key) => {
for (key_bind, action) in self.key_binds.iter() {
if key_bind.matches(modifiers, &key) {
if key_bind.matches(modifiers, &key, Some(&physical)) {
return self.update(action.message(None));
}
}
@ -2158,6 +2165,9 @@ impl Application for App {
}
}
}
Message::NoOp => {
// Do nothing
}
Message::NotifyEvent(event) => {
// Reload tabs that changed
let mut tab_reload = Vec::new();
@ -2586,11 +2596,18 @@ impl Application for App {
let entity = entity_opt.unwrap_or_else(|| self.tab_model.active());
if let Some(Tab::Editor(tab)) = self.tab_model.data_mut::<Tab>(entity) {
if tab.path_opt.is_none() {
return self.update(Message::SaveAsDialog(Some(entity)));
}
match tab.path_opt.clone() {
Some(path) => {
title_opt = Some(tab.title());
tab.save();
if let Ok(canonical) = fs::canonicalize(&path) {
self.add_to_recents(&canonical);
}
}
None => {
return self.update(Message::SaveAsDialog(Some(entity)));
}
}
}
if let Some(title) = title_opt {
self.tab_model.text_set(self.tab_model.active(), title);
@ -2601,10 +2618,17 @@ impl Application for App {
let entities: Vec<_> = self.tab_model.iter().collect();
for entity in entities {
if let Some(Tab::Editor(tab)) = self.tab_model.data_mut::<Tab>(entity) {
if tab.path_opt.is_none() {
match tab.path_opt.clone() {
Some(path) => {
tab.save();
if let Ok(canonical) = fs::canonicalize(&path) {
self.add_to_recents(&canonical);
}
}
None => {
log::warn!("{} has no path when doing save all", tab.title());
}
tab.save();
}
}
}
return self.update_dialogs();
@ -2648,6 +2672,11 @@ impl Application for App {
tab.path_opt = Some(paths.remove(0));
title_opt = Some(tab.title());
tab.save();
if let Some(path) = tab.path_opt.clone() {
if let Ok(canonical) = fs::canonicalize(&path) {
self.add_to_recents(&canonical);
}
}
}
if let Some(title) = title_opt {
self.tab_model.text_set(entity, title);
@ -2684,9 +2713,7 @@ impl Application for App {
}
}
Message::Surface(a) => {
return cosmic::task::message(cosmic::Action::Cosmic(
cosmic::app::Action::Surface(a),
));
return cosmic::task::message(cosmic::Action::Surface(a));
}
Message::SystemThemeModeChange(_theme_mode) => {
return self.update_config();
@ -2765,7 +2792,9 @@ impl Application for App {
}
Message::TabCloseForce(entity) => {
// Activate closest item
if let Some(position) = self.tab_model.position(entity) {
if self.tab_model.active() == entity
&& let Some(position) = self.tab_model.position(entity)
{
if position > 0 {
self.tab_model.activate_position(position - 1);
} else {
@ -2779,7 +2808,7 @@ impl Application for App {
// If that was the last tab, exit the application
if self.tab_model.iter().next().is_none() {
return self.update(Message::QuitForce)
return self.update(Message::QuitForce);
}
// Close PromptSaveClose dialog if open for this entity
@ -2792,15 +2821,15 @@ impl Application for App {
Message::TabContextAction(entity, action) => {
if let Some(Tab::Editor(tab)) = self.tab_model.data_mut::<Tab>(entity) {
// Close context menu
tab.context_menu = None;
tab.context_menu_open = false;
// Run action's message
return self.update(action.message(None));
}
}
Message::TabContextMenu(entity, position_opt) => {
Message::TabContextMenu(entity, open) => {
if let Some(Tab::Editor(tab)) = self.tab_model.data_mut::<Tab>(entity) {
// Update context menu
tab.context_menu = position_opt;
tab.context_menu_open = open;
}
}
Message::TabNext => {
@ -3005,12 +3034,19 @@ impl Application for App {
}
fn header_start(&self) -> Vec<Element<'_, Message>> {
let has_selection = match self.active_tab() {
Some(Tab::Editor(tab)) => tab.editor.lock().unwrap().selection() != Selection::None,
Some(Tab::GitDiff(_)) => false,
None => false,
};
vec![menu_bar(
&self.core,
&self.config,
&self.config_state,
&self.key_binds,
&self.projects,
has_selection,
)]
}
@ -3055,23 +3091,25 @@ impl Application for App {
.on_focus(Message::FindFocused(false))
.on_auto_scroll(Message::AutoScroll)
.on_changed(Message::TabChanged(tab_id))
.has_context_menu(tab.context_menu.is_some())
.on_context_menu(move |position_opt| {
Message::TabContextMenu(tab_id, position_opt)
});
.has_context_menu(tab.context_menu_open)
.on_context_menu(move |open| Message::TabContextMenu(tab_id, open));
if self.config.highlight_current_line {
text_box = text_box.highlight_current_line();
}
if self.config.line_numbers {
text_box = text_box.line_numbers();
}
let mut popover = widget::popover(text_box);
if let Some(point) = tab.context_menu {
popover = popover
.popup(menu::context_menu(&self.key_binds, tab_id))
.position(widget::popover::Position::Point(point));
let has_selection = tab.editor.lock().unwrap().selection() != Selection::None;
let mut context_menu = widget::context_menu(
text_box,
Some(menu::context_menu(&self.key_binds, tab_id, has_selection)),
)
.on_close(Message::TabContextMenu(tab_id, false))
.on_surface_action(Message::Surface);
if let Some(window_id) = self.core().main_window_id() {
context_menu = context_menu.window_id(window_id);
}
tab_column = tab_column.push(popover);
tab_column = tab_column.push(context_menu);
if self.config.vim_bindings {
let status = {
let editor = tab.editor.lock().unwrap();
@ -3307,12 +3345,15 @@ impl Application for App {
let mut subscriptions = vec![
event::listen_with(|event, status, window_id| match event {
event::Event::Keyboard(keyboard::Event::KeyPressed { modifiers, key, .. }) => {
match status {
event::Status::Ignored => Some(Message::Key(modifiers, key)),
event::Event::Keyboard(keyboard::Event::KeyPressed {
modifiers,
physical_key,
key,
..
}) => match status {
event::Status::Ignored => Some(Message::Key(modifiers, physical_key, key)),
event::Status::Captured => None,
}
}
},
event::Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => {
Some(Message::Modifiers(modifiers))
}

View file

@ -1,18 +1,15 @@
// SPDX-License-Identifier: GPL-3.0-only
use cosmic::widget::menu::Item as MenuItem;
use cosmic::widget::menu::action::MenuAction;
use cosmic::widget::menu::key_bind::KeyBind;
use cosmic::{
Element,
app::Core,
iced::{
Background, Border, Length, advanced::widget::text::Style as TextStyle, widget::column,
},
theme,
widget::{
self, divider,
menu::{ItemHeight, ItemWidth, menu_button},
responsive_menu_bar, segmented_button, space,
self,
menu::{ItemHeight, ItemWidth},
responsive_menu_bar, segmented_button,
},
};
use std::{collections::HashMap, path::PathBuf, sync::LazyLock};
@ -116,64 +113,49 @@ fn format_recent_menu_path(path: &PathBuf, home_dir_opt: Option<&PathBuf>) -> St
truncate_middle(&display, RECENT_MENU_LABEL_MAX_CHARS)
}
pub fn context_menu<'a>(
/// A context menu action dispatched to the tab the menu was opened on.
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct TabAction(pub segmented_button::Entity, pub Action);
impl MenuAction for TabAction {
type Message = Message;
fn message(&self) -> Message {
Message::TabContextAction(self.0, self.1)
}
}
pub fn context_menu(
key_binds: &HashMap<KeyBind, Action>,
entity: segmented_button::Entity,
) -> Element<'a, Message> {
fn key_style(theme: &cosmic::Theme) -> TextStyle {
let mut color = theme.cosmic().background.component.on;
color.alpha *= 0.75;
TextStyle {
color: Some(color.into()),
has_selection: bool,
) -> Vec<widget::menu::Tree<Message>> {
let item =
|label: String, action: Action| MenuItem::Button(label, None, TabAction(entity, action));
let optional = |label: String, action: Action, enabled: bool| {
if enabled {
MenuItem::Button(label, None, TabAction(entity, action))
} else {
MenuItem::ButtonDisabled(label, None, TabAction(entity, action))
}
}
let menu_item = |menu_label, menu_action| {
let mut key = String::new();
for (key_bind, key_action) in key_binds.iter() {
if key_action == &menu_action {
key = key_bind.to_string();
break;
}
}
menu_button(vec![
widget::text(menu_label).into(),
space::horizontal().into(),
widget::text(key)
.class(theme::Text::Custom(key_style))
.into(),
])
.on_press(Message::TabContextAction(entity, menu_action))
};
widget::container(column!(
menu_item(fl!("undo"), Action::Undo),
menu_item(fl!("redo"), Action::Redo),
divider::horizontal::light(),
menu_item(fl!("cut"), Action::Cut),
menu_item(fl!("copy"), Action::Copy),
menu_item(fl!("paste"), Action::Paste),
menu_item(fl!("select-all"), Action::SelectAll),
))
.padding(1)
//TODO: move style to libcosmic
.style(|theme| {
let cosmic = theme.cosmic();
let component = &cosmic.background.component;
widget::container::Style {
icon_color: Some(component.on.into()),
text_color: Some(component.on.into()),
background: Some(Background::Color(component.base.into())),
border: Border {
radius: cosmic.radius_s().map(|x| x + 1.0).into(),
width: 1.0,
color: component.divider.into(),
},
..Default::default()
}
})
.width(Length::Fixed(240.0))
.into()
let key_binds: HashMap<KeyBind, TabAction> = key_binds
.iter()
.map(|(key_bind, action)| (key_bind.clone(), TabAction(entity, *action)))
.collect();
widget::menu::items(
&key_binds,
vec![
item(fl!("undo"), Action::Undo),
item(fl!("redo"), Action::Redo),
MenuItem::Divider,
optional(fl!("cut"), Action::Cut, has_selection),
optional(fl!("copy"), Action::Copy, has_selection),
item(fl!("paste"), Action::Paste),
item(fl!("select-all"), Action::SelectAll),
],
)
}
pub fn menu_bar<'a>(
@ -182,6 +164,7 @@ pub fn menu_bar<'a>(
config_state: &ConfigState,
key_binds: &HashMap<KeyBind, Action>,
projects: &Vec<(String, PathBuf)>,
has_selection: bool,
) -> Element<'a, Message> {
//TODO: port to libcosmic
let menu_tab_width = |tab_width: u16| {
@ -274,8 +257,16 @@ pub fn menu_bar<'a>(
MenuItem::Button(fl!("undo"), None, Action::Undo),
MenuItem::Button(fl!("redo"), None, Action::Redo),
MenuItem::Divider,
MenuItem::Button(fl!("cut"), None, Action::Cut),
MenuItem::Button(fl!("copy"), None, Action::Copy),
if has_selection {
MenuItem::Button(fl!("cut"), None, Action::Cut)
} else {
MenuItem::ButtonDisabled(fl!("cut"), None, Action::NoOp)
},
if has_selection {
MenuItem::Button(fl!("copy"), None, Action::Copy)
} else {
MenuItem::ButtonDisabled(fl!("copy"), None, Action::NoOp)
},
MenuItem::Button(fl!("paste"), None, Action::Paste),
MenuItem::Button(fl!("select-all"), None, Action::SelectAll),
MenuItem::Divider,

View file

@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
use cosmic::{
iced::{Point, advanced::graphics::text::font_system},
widget::icon,
};
use cosmic::{iced::advanced::graphics::text::font_system, widget::icon};
use cosmic_files::mime_icon::{FALLBACK_MIME_ICON, mime_for_path, mime_icon};
use cosmic_text::{Attrs, Buffer, Cursor, Edit, Selection, Shaping, SyntaxEditor, ViEditor, Wrap};
use regex::Regex;
@ -51,7 +48,7 @@ pub struct EditorTab {
pub path_opt: Option<PathBuf>,
attrs: Attrs<'static>,
pub editor: Mutex<ViEditor<'static, 'static>>,
pub context_menu: Option<Point>,
pub context_menu_open: bool,
pub zoom_adj: i8,
}
@ -75,7 +72,7 @@ impl EditorTab {
path_opt: None,
attrs,
editor: Mutex::new(ViEditor::new(editor)),
context_menu: None,
context_menu_open: false,
zoom_adj,
};

View file

@ -7,6 +7,7 @@ use cosmic::{
Border, Radians, Shell, Transformation,
clipboard::Clipboard,
image,
input_method::{Event as InputMethodEvent, InputMethod, Preedit, Purpose},
keyboard::{Key, key::Named},
layout::{self, Layout},
renderer::{self, Quad, Renderer as _},
@ -16,6 +17,7 @@ use cosmic::{
operation::{self, Operation},
tree,
},
window::Event as WindowEvent,
},
iced::{
Color, Element, Length, Padding, Point, Rectangle, Size, Vector,
@ -49,7 +51,7 @@ pub struct TextBox<'a, Message> {
on_focus: Option<Message>,
click_timing: Duration,
has_context_menu: bool,
on_context_menu: Option<Box<dyn Fn(Option<Point>) -> Message + 'a>>,
on_context_menu: Option<Box<dyn Fn(bool) -> Message + 'a>>,
highlight_current_line: bool,
line_numbers: bool,
}
@ -105,10 +107,7 @@ where
self
}
pub fn on_context_menu(
mut self,
on_context_menu: impl Fn(Option<Point>) -> Message + 'a,
) -> Self {
pub fn on_context_menu(mut self, on_context_menu: impl Fn(bool) -> Message + 'a) -> Self {
self.on_context_menu = Some(Box::new(on_context_menu));
self
}
@ -127,6 +126,35 @@ where
self.on_focus = Some(on_focus);
self
}
fn input_method<'b>(
&self,
state: &'b State,
scale_factor: f32,
layout: Layout<'_>,
) -> InputMethod<&'b str> {
if !state.is_focused {
return InputMethod::Disabled;
};
let editor_pos = layout.position() + [self.padding.left, self.padding.top].into();
let (caret_x, caret_y) = state.caret_position;
InputMethod::Enabled {
cursor: Rectangle::new(
Point::new(
editor_pos.x
+ (caret_x as f32 + state.editor_offset_x.get() as f32) / scale_factor,
editor_pos.y + (caret_y as f32) / scale_factor,
),
Size::new(
1.0,
(self.metrics.scale(scale_factor).line_height) / scale_factor,
),
),
purpose: Purpose::Normal,
preedit: state.preedit.as_ref().map(Preedit::as_ref),
}
}
}
pub fn text_box<'a, Message>(
@ -794,7 +822,7 @@ where
let scrollbar_color = if pressed {
// pressed_state_color, 0.5
cosmic_theme
.background
.background(theme.transparent)
.component
.pressed
.without_alpha()
@ -803,7 +831,7 @@ where
} else if hover {
// hover_state_color, 0.2
cosmic_theme
.background
.background(theme.transparent)
.component
.hover
.without_alpha()
@ -890,7 +918,7 @@ where
let scrollbar_color = if pressed {
// pressed_state_color, 0.5
cosmic_theme
.background
.background(theme.transparent)
.component
.pressed
.without_alpha()
@ -899,7 +927,7 @@ where
} else if hover {
// hover_state_color, 0.2
cosmic_theme
.background
.background(theme.transparent)
.component
.hover
.without_alpha()
@ -1058,11 +1086,13 @@ where
Named::Backspace => {
delete_modifiers(&mut editor, Motion::LeftWord, *modifiers);
editor.action(Action::Backspace);
editor.set_redraw(true);
shell.capture_event();
}
Named::Delete => {
delete_modifiers(&mut editor, Motion::RightWord, *modifiers);
editor.action(Action::Delete);
editor.set_redraw(true);
shell.capture_event();
}
Named::Tab => {
@ -1101,6 +1131,33 @@ where
}
state.modifiers = *modifiers;
}
Event::InputMethod(event) => match event {
InputMethodEvent::Opened | InputMethodEvent::Closed => {
let metrics = self.metrics.scale(scale_factor);
state.preedit = matches!(event, InputMethodEvent::Opened).then(|| {
let mut preedit = Preedit::new();
preedit.text_size = Some(metrics.font_size.into());
preedit
});
}
InputMethodEvent::Preedit(content, selection) => {
if state.is_focused {
state.preedit = Some(Preedit {
content: content.to_owned(),
selection: selection.clone(),
text_size: Some(self.metrics.font_size.into()),
});
}
}
InputMethodEvent::Commit(text) => {
if state.is_focused {
editor.start_change();
editor.insert_string(&text, None);
editor.finish_change();
shell.capture_event();
}
}
},
Event::Mouse(MouseEvent::ButtonPressed(button)) => {
if let Some(p) = cursor_position.position_in(layout.bounds()) {
state.is_focused = true;
@ -1207,14 +1264,9 @@ where
// Update context menu state
if let Some(on_context_menu) = &self.on_context_menu {
shell.publish((on_context_menu)(if self.has_context_menu {
None
} else {
match button {
Button::Right => Some(p),
_ => None,
}
}));
shell.publish((on_context_menu)(
!self.has_context_menu && matches!(button, Button::Right),
));
}
shell.capture_event();
@ -1336,6 +1388,12 @@ where
shell.capture_event();
}
}
Event::Window(WindowEvent::RedrawRequested(_now)) => {
if state.is_focused {
state.caret_position = editor.cursor_position().unwrap_or(state.caret_position);
shell.request_input_method(&self.input_method(state, scale_factor, layout));
}
}
_ => (),
}
@ -1348,6 +1406,10 @@ where
shell.publish(on_changed.clone());
}
}
if editor.redraw() {
shell.request_redraw();
}
}
}
@ -1385,6 +1447,8 @@ pub struct State {
scrollbar_h_rect: Cell<Option<Rectangle<f32>>>,
handle_opt: Mutex<Option<image::Handle>>,
shift_anchor: Mutex<Option<Cursor>>,
caret_position: (i32, i32),
preedit: Option<Preedit>,
}
impl State {
@ -1402,6 +1466,8 @@ impl State {
scrollbar_h_rect: Cell::new(None),
handle_opt: Mutex::new(None),
shift_anchor: Mutex::new(None),
caret_position: (0, 0),
preedit: None,
}
}
}