Skip to content
Snippets Groups Projects
Commit 2ce05f39 authored by David Bühler's avatar David Bühler
Browse files

[Ivette] Sidebar: improves functions filtering.

Adds filters for intern or extern functions.
Adds the possibility to see only undefined functions or functions unreached
by the Eva analysis.
parent f0205d23
No related branches found
No related tags found
No related merge requests found
...@@ -136,12 +136,20 @@ export default function Globals(): JSX.Element { ...@@ -136,12 +136,20 @@ export default function Globals(): JSX.Element {
useFlipSettings('ivette.globals.stdlib', false); useFlipSettings('ivette.globals.stdlib', false);
const [builtin, flipBuiltin] = const [builtin, flipBuiltin] =
useFlipSettings('ivette.globals.builtin', false); useFlipSettings('ivette.globals.builtin', false);
const [def, flipDef] =
useFlipSettings('ivette.globals.def', true);
const [undef, flipUndef] = const [undef, flipUndef] =
useFlipSettings('ivette.globals.undef', true); useFlipSettings('ivette.globals.undef', true);
const [selected, flipSelected] = const [intern, flipIntern] =
useFlipSettings('ivette.globals.selected', false); useFlipSettings('ivette.globals.intern', true);
const [evaOnly, flipEvaOnly] = const [extern, flipExtern] =
useFlipSettings('ivette.globals.evaonly', false); useFlipSettings('ivette.globals.extern', true);
const [evaAnalyzed, flipEvaAnalyzed] =
useFlipSettings('ivette.globals.eva-analyzed', true);
const [evaUnreached, flipEvaUnreached] =
useFlipSettings('ivette.globals.eva-unreached', true);
const [selected, flipSelected] =
useFlipSettings('ivette.globals.selected', false);
const multipleSelection = selection?.multiple; const multipleSelection = selection?.multiple;
const multipleSelectionActive = multipleSelection?.allSelections.length > 0; const multipleSelectionActive = multipleSelection?.allSelections.length > 0;
const evaComputed = States.useSyncValue(computationState) === 'computed'; const evaComputed = States.useSyncValue(computationState) === 'computed';
...@@ -159,8 +167,13 @@ export default function Globals(): JSX.Element { ...@@ -159,8 +167,13 @@ export default function Globals(): JSX.Element {
const visible = const visible =
(stdlib || !fct.stdlib) (stdlib || !fct.stdlib)
&& (builtin || !fct.builtin) && (builtin || !fct.builtin)
&& (def || !fct.defined)
&& (undef || fct.defined) && (undef || fct.defined)
&& (!evaOnly || !evaComputed || && (intern || fct.extern)
&& (extern || !fct.extern)
&& (evaAnalyzed || !evaComputed ||
!('eva_analyzed' in fct && fct.eva_analyzed === true))
&& (evaUnreached || !evaComputed ||
('eva_analyzed' in fct && fct.eva_analyzed === true)) ('eva_analyzed' in fct && fct.eva_analyzed === true))
&& (!selected || !multipleSelectionActive || isSelected(fct)); && (!selected || !multipleSelectionActive || isSelected(fct));
return visible || (!!current && fct.name === current); return visible || (!!current && fct.name === current);
...@@ -182,24 +195,48 @@ export default function Globals(): JSX.Element { ...@@ -182,24 +195,48 @@ export default function Globals(): JSX.Element {
checked: stdlib, checked: stdlib,
onClick: flipStdlib, onClick: flipStdlib,
}, },
'separator',
{
label: 'Show defined functions',
checked: def,
onClick: flipDef,
},
{ {
label: 'Show undefined functions', label: 'Show undefined functions',
checked: undef, checked: undef,
onClick: flipUndef, onClick: flipUndef,
}, },
'separator', 'separator',
{
label: 'Show intern functions',
checked: intern,
onClick: flipIntern,
},
{
label: 'Show extern functions',
checked: extern,
onClick: flipExtern,
},
'separator',
{
label: 'Show functions analyzed by Eva',
enabled: evaComputed,
checked: evaAnalyzed,
onClick: flipEvaAnalyzed,
},
{
label: 'Show functions unreached by Eva',
enabled: evaComputed,
checked: evaUnreached,
onClick: flipEvaUnreached,
},
'separator',
{ {
label: 'Selected only', label: 'Selected only',
enabled: multipleSelectionActive, enabled: multipleSelectionActive,
checked: selected, checked: selected,
onClick: flipSelected, onClick: flipSelected,
}, },
{
label: 'Analyzed by Eva only',
enabled: evaComputed,
checked: evaOnly,
onClick: flipEvaOnly,
},
]; ];
Dome.popupMenu(items); Dome.popupMenu(items);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment