Skip to content

Commit fba96b0

Browse files
Merge pull request #705 from lukecotter/feat-optimised-timeline-themes
feat: 18 new themes for the experimental timeline
2 parents bb8b0d9 + 3267c49 commit fba96b0

27 files changed

+1244
-124
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12-
-**Timeline**: A brand new **experimental** timeline Flame Chart that is up to **7X faster**. ([#446] [#251] [#92])
13-
- Enable it via **Settings -> Apex Log Analyzer -> Timeline -> Experimental -> Timeline**.
12+
-**Timeline**: A brand new **experimental** timeline Flame Chart that is up to **7X faster**. ([#446] [#251] [#92] [#564])
13+
- Revert to the legacy timeline via **Settings -> Apex Log Analyzer -> Timeline -> Legacy**.
1414
- Generally Improved performance, especially for large logs.
1515
- Text labels on Timeline events.
1616
- Zoom and pan are now **7X faster**.
1717
- The Time axis scales more naturally when zooming, with larger gaps between the markers on longer logs.
1818
- Search + highlight will grey out non matches to find matches more easily.
19+
- Added 18 timeline color themes and improved the default theme for better contrast and readability.
20+
- Supply multiple custom themes via **Settings -> Apex Log Analyzer -> Timeline -> Custom Themes**.
21+
- Change the active theme via the new **Command Palette** command **Log: Timeline Theme** or via **Settings -> Apex Log Analyzer -> Timeline -> Active Theme**.
1922

2023
### Changed
2124

@@ -415,6 +418,7 @@ Skipped due to adopting odd numbering for pre releases and even number for relea
415418

416419
<!-- Unreleased -->
417420

421+
[#564]: https://github.com/certinia/debug-log-analyzer/issues/564
418422
[#92]: https://github.com/certinia/debug-log-analyzer/issues/92
419423
[#694]: https://github.com/certinia/debug-log-analyzer/issues/694
420424
[#446]: https://github.com/certinia/debug-log-analyzer/issues/446

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,5 @@ Copyright &copy; Certinia Inc. All rights reserved.
186186
## 🙏 Acknowledgments
187187

188188
This project uses [Tabulator Tables](http://tabulator.info/), an open-source table library, under the MIT license. Tabulator is a powerful and flexible table library that helped with the interactive table features in the Apex Log Analyzer extension.
189+
190+
Additionally, the timeline color themes in Apex Log Analyzer draw inspiration from several open-source color palettes, editor themes, and UIs — including Salesforce UI, Chrome DevTools, and Firefox DevTools. We are grateful to the creators and maintainers of Catppuccin, Dracula, Nord, Solarized, Monokai Pro, Okabe–Ito, Material Design, and the broader theme communities whose work influenced the presets included in our timeline themes.

lana-docs-site/docs/docs/features/timeline.md

Lines changed: 122 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,36 @@ image: https://raw.githubusercontent.com/certinia/debug-log-analyzer/main/lana/a
1515
hide_title: true
1616
---
1717

18-
## 🔥 Timeline / Flame chart
18+
## 🔥 Timeline / Flame Chart
1919

2020
Use the Timeline to visualize code execution, event durations, and performance bottlenecks. Zoom, pan, and interact with detailed tooltips for efficient Salesforce apex log analysis and debugging.
2121

2222
![Timeline view screenshot showing a color-coded flame chart of Salesforce event types such as DB, Method, and SOQL, visualizing code execution duration and performance](https://raw.githubusercontent.com/certinia/debug-log-analyzer/main/lana/assets/v1.18/lana-timeline.png)
2323

24-
### Zoom + pan
24+
The new experimental timeline is up to **7X faster** than the legacy timeline, with improved performance especially for large logs. It includes text labels on events, faster zoom/pan operations, and a more natural time axis scaling.
2525

26-
- Scroll up and down with the mouse to zoom in and out to an accuracy of 0.001ms, time markers are shown with a ms time value and white line e.g 9600.001 ms.
27-
- When zooming the mouse pointer position is kept on screen.
28-
- Scroll left and right on the mouse to move the time line left are right, when zoomed
29-
- Click the mouse down and drag to move the timeline around both in the x and y direction, when zoomed
26+
:::tip Legacy Timeline
27+
To revert to the legacy timeline, navigate to **Settings → Apex Log Analyzer → Timeline → Legacy** and enable it.
28+
:::
29+
30+
## Navigation
31+
32+
### Zoom + Pan
33+
34+
- **Scroll up and down** with the mouse to zoom in and out to an accuracy of 0.001ms. Time markers are shown with a ms time value and white line (e.g., 9600.001 ms).
35+
- When zooming, the mouse pointer position is kept on screen.
36+
- **Scroll left and right** on the mouse to move the timeline left or right when zoomed.
37+
- **Click and drag** to move the timeline around both in the x and y direction when zoomed.
3038

3139
### Go to Call Tree
3240

33-
Clicking an event in the Timeline will go to and select that event in the Call Tree.
41+
Clicking an event in the Timeline will navigate to and select that event in the Call Tree.
42+
43+
### Search + Highlight
3444

35-
### Tooltip
45+
The timeline supports search functionality that greys out non-matching events, making it easier to find specific matches visually.
46+
47+
## Tooltip
3648

3749
<img
3850
src="https://raw.githubusercontent.com/certinia/debug-log-analyzer/main/lana/assets/v1.18/lana-timeline-tooltip.png"
@@ -42,11 +54,106 @@ style={{
4254
}}
4355
loading="lazy"/>
4456

45-
Hovering over an element provides information on the item. If you click on an item it will take you to that row in the Call Tree.
57+
Hovering over an element displays detailed information about that event. Clicking on an item navigates to that row in the Call Tree.
58+
59+
The tooltip provides the following information:
60+
61+
- **Event Name** - e.g., `METHOD_ENTRY`, `EXECUTION_STARTED`, `SOQL_EXECUTION_BEGIN`
62+
- **Event Description** - Additional information about the event such as method name or SOQL query executed
63+
- **Timestamp** - The start and end timestamp for the given event which can be cross-referenced in the log file
64+
- **Duration** - Made up of **Total Time** (time spent in that event and its children) and **Self Time** (time directly spent in that event)
65+
- **Rows** - Shows **Total Rows** (rows from that event and its children) and **Self Rows** (rows directly from that event)
66+
67+
## Themes
68+
69+
The timeline supports multiple color themes for better visual clarity and personalization. The extension includes 19 built-in themes with improved contrast and readability.
70+
71+
### Built-in Themes
72+
73+
The following themes are available out of the box:
74+
75+
- **50 Shades of Green** (default)
76+
- 50 Shades of Green Bright
77+
- Botanical Twilight
78+
- Catppuccin
79+
- Chrome
80+
- Dracula
81+
- Dusty Aurora
82+
- Firefox
83+
- Flame
84+
- Forest Floor
85+
- Garish
86+
- Material
87+
- Modern
88+
- Monokai Pro
89+
- Nord
90+
- Nord Forest
91+
- Okabe-Ito
92+
- Salesforce
93+
- Solarized
94+
95+
### Switching Themes
96+
97+
There are two ways to change the active timeline theme:
98+
99+
#### Command Palette
100+
101+
1. Open the Command Palette (`Cmd+Shift+P` on macOS or `Ctrl+Shift+P` on Windows/Linux)
102+
2. Type **"Log: Timeline Theme"**
103+
3. Select a theme from the list
104+
4. Preview themes by navigating through the options with arrow keys
105+
5. Press `Enter` to confirm, or `Esc` to revert to the previous theme
106+
107+
#### Settings
108+
109+
Navigate to **Settings → Apex Log Analyzer → Timeline → Active Theme** and select your preferred theme from the dropdown.
110+
111+
### Custom Themes
112+
113+
You can create custom color themes to match your preferences or specific use cases.
114+
115+
#### Creating Custom Themes
116+
117+
1. Navigate to **Settings → Apex Log Analyzer → Timeline → Custom Themes**
118+
2. Define your custom theme(s) using the following structure:
119+
120+
```json
121+
"lana.timeline.customThemes": {
122+
"My Theme": {
123+
"codeUnit": "#0176D3",
124+
"workflow": "#CE4A6B",
125+
"method": "#54698D",
126+
"flow": "#9050E9",
127+
"dml": "#D68128",
128+
"soql": "#04844B",
129+
"system": "#706E6B"
130+
},
131+
"High Contrast": {
132+
"codeUnit": "#722ED1",
133+
"workflow": "#52C41A",
134+
"method": "#1890FF",
135+
"flow": "#00BCD4",
136+
"dml": "#FF9100",
137+
"soql": "#EB2F96",
138+
"system": "#90A4AE"
139+
}
140+
}
141+
```
142+
143+
#### Theme Color Properties
144+
145+
Each theme requires the following color properties (in hex format):
146+
147+
- **codeUnit** - Code Unit events
148+
- **workflow** - Workflow and automation events
149+
- **method** - Method entry/exit events
150+
- **flow** - Flow execution events
151+
- **dml** - DML operations (insert, update, delete, etc.)
152+
- **soql** - SOQL queries
153+
- **system** - System method calls
154+
155+
Custom themes will appear in the theme selector alongside built-in themes and can be switched using the Command Palette or settings.
46156

47-
The tooltip provides the following information.\
48-
**Event Name** - e.g `METHOD_ENTRY`, `EXECUTION_STARTED`, `SOQL_EXECUTION_BEGIN` etc\
49-
**Event Description** - Additional information about the event such as method name or SOQL query executed.\
50-
**Timestamp** - The start and end timestamp for the given event which can be cross referenced in the log file.\
51-
**Duration** - Made up of **Total Time** (time spent in that event and its children) and **Self Time** (time directly spent in that event).\
52-
**Rows** - Shows **Total Rows** (rows from that event and its children) and **Self Rows** (rows directly from that event).
157+
:::note
158+
Custom theme names cannot override built-in theme names. If you use the same name as a built-in theme, the built-in theme will take precedence.
159+
:::

0 commit comments

Comments
 (0)