﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
4746	Trace back where a given component is defined (or modified) in a class	Francesco Casella	Adrian Pop	"Inheritance is widely used to build Modelica models a) to factor out common behaviour and b) to customize models via replaceable classes and models.

Consider this simple example. 
{{{
model A
  Real x ""Amount of stuff XXX"";
  Real y ""Amount of stuff YYY"";
  ...
end A;

model B
  extends A(y(start = 10));
  Real z ""Amount of stuff ZZZ"";
end B;

model C
  extends B;
  Real w;
equation
  x + y = 10;
  y + z = 15;
  x/z = w;
  w = 3;
end C;
}}}

Suppose I am inspecting model C, and I want to understand its equations. Unfortunately, the definitions of variables {{{x, y, z}}}, and of their start attribute (which could be critical for convergence) is not found in class C. 

What I need to do as of today is to manually traverse the inheritance chain to discover the definition of {{{z}}} in {{{B}}}, of {{{x,y}}} in {{{A}}}, and the redeclaration of the start attribute of {{{y}}} in {{{B}}}.

The compiler knows about all this stuff, so it would be really nice if it could spare me the waste of time of the manual search and give me this information. For example, if I right click on {{{y}}} in model C, it will tell me that the variable is defined in model {{{A}}} and the start attribute modified in class {{{B}}}, and possibly open extra tabs in OMEdit where those definitions are highlighted.

BTW, this feature would be immensely useful to allow people to really understand models from complex libraries like {{{Modelica.Media}}} and {{{Modelica.Fluid}}}.

Would this be doable without too much effort?"	enhancement	new	high	Future	Frontend				
