Skip to content

Commit d2d2db0

Browse files
authored
Merge branch 'master' into jeremypw/custom-classic-stylescheme
2 parents f904b7e + e34a8c9 commit d2d2db0

File tree

630 files changed

+52943
-37376
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

630 files changed

+52943
-37376
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
image: ghcr.io/elementary/docker:${{ matrix.version }}
1919

2020
steps:
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v5
2222
- name: Install Dependencies
2323
run: |
2424
apt update
@@ -45,15 +45,15 @@ jobs:
4545
fail-fast: false
4646

4747
container:
48-
image: ghcr.io/elementary/flatpak-platform/runtime:8-${{ matrix.configuration.arch }}
48+
image: ghcr.io/elementary/flatpak-platform/runtime:8.2-${{ matrix.configuration.arch }}
4949
options: --privileged
5050

5151
steps:
5252
- name: Checkout
53-
uses: actions/checkout@v4
53+
uses: actions/checkout@v5
5454

5555
- name: Build
56-
uses: flatpak/flatpak-github-actions/flatpak-builder@v6.5
56+
uses: flatpak/flatpak-github-actions/flatpak-builder@v6.6
5757
with:
5858
bundle: code.flatpak
5959
manifest-path: io.elementary.code.yml
@@ -71,7 +71,7 @@ jobs:
7171

7272
steps:
7373
- name: Checkout
74-
uses: actions/checkout@v4
74+
uses: actions/checkout@v5
7575

7676
- name: Lint
7777
run: io.elementary.vala-lint -d .

.github/workflows/merge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99

1010
steps:
1111
- name: Clone repository
12-
uses: actions/checkout@v4
12+
uses: actions/checkout@v5
1313
with:
1414
token: ${{ secrets.GIT_USER_TOKEN }}
1515

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
runs-on: ubuntu-latest
1010
if: github.event.pull_request.merged == true && true == contains(join(github.event.pull_request.labels.*.name), 'Release')
1111
steps:
12-
- uses: actions/checkout@v4
13-
- uses: elementary/actions/release@master
12+
- uses: actions/checkout@v5
13+
- uses: elementary/actions/release@main
1414
env:
1515
GIT_USER_TOKEN: "${{ secrets.GIT_USER_TOKEN }}"
1616
GIT_USER_NAME: "elementaryBot"

data/code.metainfo.xml.in

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929

3030
<screenshots>
3131
<screenshot type="default">
32-
<image>https://raw.githubusercontent.com/elementary/code/8.0.0/data/screenshot.png</image>
32+
<image>https://raw.githubusercontent.com/elementary/code/8.1.1/data/screenshot.png</image>
3333
</screenshot>
3434
<screenshot>
35-
<image>https://raw.githubusercontent.com/elementary/code/8.0.0/data/screenshot-dark.png</image>
35+
<image>https://raw.githubusercontent.com/elementary/code/8.1.1/data/screenshot-dark.png</image>
3636
</screenshot>
3737
</screenshots>
3838

@@ -68,6 +68,60 @@
6868
<update_contact>contact_AT_elementary.io</update_contact>
6969

7070
<releases>
71+
<release version="8.1.2" date="2025-10-18" urgency="medium">
72+
<description>
73+
<p>Minor updates:</p>
74+
<ul>
75+
<li>The tooltips for C symbols are now more informative</li>
76+
<li>Cloning success is now indicated by toast instead of a dialog</li>
77+
<li>Global search and local search now have the same case sensitivity</li>
78+
<li>Updated translations</li>
79+
</ul>
80+
</description>
81+
<issues>
82+
<issue url="https://github.com/elementary/code/issues/1628">Git clone success dialog should be a toast</issue>
83+
<issue url="https://github.com/elementary/code/issues/1277">Global Search case sensitivity behaviour differs from local search</issue>
84+
</issues>
85+
</release>
86+
<release version="8.1.1" date="2025-09-06" urgency="medium">
87+
<description>
88+
<p>Minor updates:</p>
89+
<ul>
90+
<li>The terminal pane is now synchronized with the Terminal app foreground, background and palette settings</li>
91+
<li>The terminal pane is now synchronized with GNOME font and cursor blink settings</li>
92+
<li>Updated translations</li>
93+
</ul>
94+
</description>
95+
<issues>
96+
<issue url="https://github.com/elementary/code/issues/1586">Relies on external Terminal settings keys</issue>
97+
<issue url="https://github.com/elementary/code/issues/457">Exiting process running in terminal leaves terminal useless</issue>
98+
<issue url="https://github.com/elementary/code/issues/276">Listen for changes to Terminal color scheme</issue>
99+
</issues>
100+
</release>
101+
<release version="8.1.0" date="2025-08-01" urgency="medium">
102+
<description>
103+
<p>Improvements:</p>
104+
<ul>
105+
<li>The Project Chooser context menu now includes an option to clone a remote git repository</li>
106+
</ul>
107+
<p>Minor updates:</p>
108+
<ul>
109+
<li>The "Open Folder" action now appears in the Project Chooser context menu</li>
110+
<li>The Vala symbol pane now shows a spinner while loading</li>
111+
<li>The filter in the C symbol pane now works</li>
112+
<li>Updated translations</li>
113+
</ul>
114+
</description>
115+
<issues>
116+
<issue url="https://github.com/elementary/code/issues/1629">Markdown plug: Extending an ordered list at end of document causes infinite loop</issue>
117+
<issue url="https://github.com/elementary/code/issues/1603">8.0.0 FTBFS with GCC 14 (-Wimplicit-function-declaration)</issue>
118+
<issue url="https://github.com/elementary/code/issues/1597">Symbol pane filter should work for C symbols too</issue>
119+
<issue url="https://github.com/elementary/code/issues/1443">Code crashes when deleting lines</issue>
120+
<issue url="https://github.com/elementary/code/issues/740">Blank tooltip on hovering expanded empty folder</issue>
121+
<issue url="https://github.com/elementary/code/issues/385">Do not allow projects to be moved to trash from the sidebar</issue>
122+
<issue url="https://github.com/elementary/code/issues/26">Outline plugin does not indicate when it is loading</issue>
123+
</issues>
124+
</release>
71125
<release version="8.0.0" date="2025-06-20" urgency="medium">
72126
<description>
73127
<p>Improvements:</p>

io.elementary.code.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
app-id: io.elementary.code
1+
id: io.elementary.code
22
runtime: io.elementary.Sdk # The outline plugin requires libvala which is only in the SDK, not the runtime
3-
runtime-version: '8' # Does not build with version '8.1' for some reason
3+
runtime-version: '8.2'
44
sdk: io.elementary.Sdk
55
command: io.elementary.code
66
finish-args:
@@ -26,6 +26,8 @@ cleanup:
2626
- '/share/vala'
2727
- '*.a'
2828
- '*.la'
29+
build-options:
30+
libdir: /app/lib
2931
modules:
3032
- name: gtksourceview
3133
buildsystem: meson
@@ -66,7 +68,6 @@ modules:
6668
- '-DBUILD_SHARED_LIBS:BOOL=ON'
6769
- '-DBUILD_EXAMPLES:BOOL=OFF'
6870
- '-DBUILD_TESTING:BOOL=OFF'
69-
- '-DCMAKE_INSTALL_LIBDIR:PATH=/app/lib'
7071
cleanup:
7172
- '/share/man'
7273
- '/share/doc'

meson.build

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ project(
22
'io.elementary.code',
33
'vala', 'c',
44
meson_version: '>= 0.58.0',
5-
version: '8.0.0'
5+
version: '8.1.1'
66
)
77

88
add_project_arguments([
@@ -73,6 +73,40 @@ if get_option('development') and git.found ()
7373
branch = output.stdout().strip()
7474
endif
7575

76+
# Profiler linking code taken from https://github.com/RidgeRun/gst-inference/blob/master/meson.build
77+
# with some amendments
78+
# 'libprofiler' and 'libtcmalloc' are provided by installing (e.g.) 'google-perftools' and 'libgoogle-pertools-dev'
79+
# Profiling is not active unless either the correct environment variables are set at runtime
80+
# or the profiling is switched on/off in the code using the CPU_PROFILING and HEAP_PROFILING conditional compilation flags
81+
# with the commands Profiler.start (<path-to-profile-output>) and Profiler.stop () and the corresponding HeapProfiler functions
82+
# It is advisable not to run cpu profiling at the same time as heap profiling
83+
# If meson options are changed then rebuild with 'cd .. && sudo rm -R ./build && build'
84+
# See https://github.com/gperftools/gperftools/blob/master/docs/cpuprofile.adoc
85+
# and https://github.com/gperftools/gperftools/blob/master/docs/heapprofile.adoc
86+
if get_option('cpu-profiling-enabled')
87+
profiler_dep = dependency ('libprofiler')
88+
if(profiler_dep.found())
89+
message('CPU profiling enabled: Building with profiling support.')
90+
add_global_link_arguments ('-lprofiler', language: 'c')
91+
add_project_arguments ('--define=PROFILING', language: 'vala')
92+
dependencies += profiler_dep
93+
else
94+
message('MESON_FAIL: CPU profiling requested but libprofiler (gperftools) not found.')
95+
endif
96+
endif
97+
if get_option('heap-profiling-enabled')
98+
heap_profiler_dep = dependency ('libtcmalloc')
99+
if(heap_profiler_dep.found())
100+
message('Heap profiling enabled: Building with heap profiling support.')
101+
add_global_link_arguments ('-ltcmalloc', language: 'c')
102+
add_project_arguments ('--define=HEAP_PROFILING', language: 'vala')
103+
dependencies += heap_profiler_dep
104+
else
105+
message('MESON_FAIL: Heap profiling requested but libtcmalloc (gperftools) not found.')
106+
endif
107+
endif
108+
109+
76110
subdir('data')
77111
subdir('src')
78112
if get_option('plugins')

meson_options.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
option('plugins', type : 'boolean', value : true)
22
option('have_pkexec', type : 'boolean', value : true, description : 'Allow launching with pkexec. Should not be used in FlatPak')
33
option('development', type : 'boolean', value : false, description : 'Build is a development branch')
4+
option('cpu-profiling-enabled', type : 'boolean', value : false, description: 'Enable cpu profiling')
5+
option('heap-profiling-enabled', type : 'boolean', value : false, description: 'Enable heap profiling')

plugins/highlight-word-selection/highlight-word-selection.vala

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,10 @@ public class Scratch.Plugins.HighlightSelectedWords : Peas.ExtensionBase, Scratc
3434
plugins = (Scratch.Services.Interface) object;
3535
plugins.hook_document.connect ((doc) => {
3636
if (current_source != null) {
37-
current_source.deselected.disconnect (on_deselection);
3837
current_source.selection_changed.disconnect (on_selection_changed);
3938
}
4039

4140
current_source = doc.source_view;
42-
current_source.deselected.connect (on_deselection);
4341
current_source.selection_changed.connect (on_selection_changed);
4442
});
4543

@@ -48,16 +46,18 @@ public class Scratch.Plugins.HighlightSelectedWords : Peas.ExtensionBase, Scratc
4846
});
4947
}
5048

51-
public void on_selection_changed (ref Gtk.TextIter start, ref Gtk.TextIter end) requires (main_window != null) {
52-
if (!main_window.has_successful_search ()) {
53-
// Perform plugin selection when there is no ongoing and successful search
54-
current_search_context = new Gtk.SourceSearchContext (
55-
(Gtk.SourceBuffer)current_source.buffer,
56-
null
57-
);
58-
current_search_context.settings.search_text = "";
49+
// A deselection is now treated as a selection change
50+
private void on_selection_changed () requires (main_window != null) {
51+
if (current_search_context != null) {
52+
// Cancel existing search
5953
current_search_context.set_highlight (false);
54+
current_search_context = null;
55+
}
6056

57+
// Only highlight (extended) selection if non-zero length and search highlighting not happening
58+
Gtk.TextIter start, end;
59+
if (current_source.buffer.get_selection_bounds (out start, out end) &&
60+
!main_window.has_successful_search ()) {
6161
var original_start = start.copy ();
6262

6363
// Ignore leading space
@@ -114,29 +114,20 @@ public class Scratch.Plugins.HighlightSelectedWords : Peas.ExtensionBase, Scratc
114114
// Ensure no leading or trailing space
115115
var selected_text = start.get_text (end).strip ();
116116

117-
if (selected_text.char_count () > SELECTION_HIGHLIGHT_MAX_CHARS) {
118-
return;
117+
// We know the selected text is non-zero length, check not too long
118+
if (selected_text.char_count () <= SELECTION_HIGHLIGHT_MAX_CHARS) {
119+
current_search_context = new Gtk.SourceSearchContext (
120+
(Gtk.SourceBuffer)current_source.buffer,
121+
null
122+
);
123+
current_search_context.settings.search_text = selected_text;
124+
current_search_context.set_highlight (true);
119125
}
120-
121-
current_search_context.settings.search_text = selected_text;
122-
current_search_context.set_highlight (true);
123-
} else if (current_search_context != null) {
124-
// Cancel existing search
125-
current_search_context.set_highlight (false);
126-
current_search_context = null;
127-
}
128-
}
129-
130-
public void on_deselection () {
131-
if (current_search_context != null) {
132-
current_search_context.set_highlight (false);
133-
current_search_context = null;
134126
}
135127
}
136128

137129
public void deactivate () {
138130
if (current_source != null) {
139-
current_source.deselected.disconnect (on_deselection);
140131
current_source.selection_changed.disconnect (on_selection_changed);
141132
}
142133
}

po/LINGUAS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,3 +198,5 @@ aa
198198
ab
199199
gn
200200
an
201+
zh_HANT
202+
zh_HANS

0 commit comments

Comments
 (0)