On Fri, 8 Apr 2022, Marco van de Voort via lazarus wrote:


On 8-4-2022 11:26, Michael Van Canneyt wrote:

The duplications are within sets of units with similar names for different component packages. It is only logical to also use that. There is no need to force the unit as disambiguator.

I want to be able to use the unit as disambiguator.

That is clear. What isn't clear is why this is needed in a way that forces changes (and incompatibilities) on users apps to solve IDE problems.

In the first place, the IDE is not the problem. The streaming is, see my reply to Mattias. The IDE just follows the streaming mechanisms available.

I don't understand why do you say it forces changes and incompatibilities ?
Because it does not. Whatever worked will continue to work.

The streaming currently has a header: TPF0. (as Delphi has)

If we change the header to TPF1 for streams with scoped identifiers, all will
work as-is as we can detect in the reader what to expect, set flags accordingly. The text format may also need a similar change, I didn't check this yet with 100% certainty.

The only change needed is to tell the writer that you want scoped names.
That is entirely optional. The IDE can decide to use it - or not: it can
perfectly detect whether they are needed.

The IDE of course needs to know that the namespaces can be there and prepare
for it: allow scoped identifiers. Hence my mail.

For the user I think this is all transparent. Those that use streaming outside the LCL can use the flag to disable scoped writing (or we leave unscoped the default).

I have not heard any technical arguments to the contrary.

Michael.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to