Mit licensed ksyntaxhighlighting usage kate get an edge in editing what causes anoxic encephalopathy

One of the main motivation points was to get QtCreator to use this, if possible, instead of their own implementation of the Kate highlighting they needed to create in the past due to the incompatible licensing of KatePart at that time (and the impossibility to do a quick split/re-licensing of the parts in question).

The current state allows the use of this tier 1 framework by projects like Qt(Creator), that require non-copyleft licenses for bundled 3rd-party source components, but in addition also for commercial applications that do static linking against a commercial Qt version.

Before the current release, our GUI used a handcrafted highlighter for our own annotation languages and the programming languages we support (e.g. C and C++). what is anoxic ischemic encephalopathy After the release of the 5.50 MIT licensed KSyntaxHighlighting, this was changed to use the framework through its QSyntaxHighlighter implementation.

The framework was easy to integrate into our static build process. To make it possible to be used without violating licensing for the bundled highlighting definitions that are not MIT and ensure no other installed instances of the framework will mess up the shipped highlighting definitions, the following two changes were contributed upstream.

A CMake switch to disable the bundling of the syntax definition data files into the library. This avoids mixing non-MIT files into the created static library, which then only contains MIT licensed code and data. anoxic brain injury post cardiac arrest One can then let people either download the definitions or ship some as extra data files with an extra licensing.

A CMake switch to disable the lookup for syntax and theme definitions in the normal locations via QStandardPaths. This allows the user of the library to only load definitions from search paths specified manually. No definitions that e.g. are installed by users for Kate or other applications using the framework will mess up your lookup, which is really important if you rely on exactly your files to be used.

After the transition, my colleagues compared the speed of the old implementation versus the new generic highlighting engine. anoxic tank At first, they were not that impressed, which did lead to several performance improvements to be implemented and up-streamed.

All directly visible bottle-necks got perf’d away. The most CPU consumption now more or less boils down to the costs of the used regular expressions via QRegularExpression. Same for the allocations, we reduced them by taking a look on the heaptrack profiles for the KSyntaxHighlighting benchmark suite.

There is no divergence in the local git clone at AbsInt at the moment, nor is there any plan to have that in the future. anoxic seizures in infants Both sides profit from up-streaming the changes. Other consumers of the framework get improvements and AbsInt doesn’t need to maintain a patched version.

You pinpoint the issue I see: HUNDREDS of files. Yes, loading those takes a bit of time – but let’s be realistic and consider the fact that in many scenarios where someone complains about load times the reaction will be that current-day SSDs are more than fast enough to make that a non-issue. hypoxia and anoxia Just like I’d get the argument “disk space is cheap” if I were to complain that all those files take space.

What you cannot compensate with faster hardware is UI clutter. With embedding users have no way to prune the definitions they have online and among which they have to chose if automatic selection doesn’t work (this goes for the pop-up widgets but even more so for the “flat” filetype list in the kate mode config page).

I can see why you want to avoid embedding files when this leads to multiple, conflicting licenses being applied to the bundled product. But that consideration doesn’t apply to downloading content. Providers concerned about controlling what definition files are available could 1) deactivate the download feature (via a simple cmake option) or 2) provide their own profile server and let the download feature use that source (which should be relatively trivial to implement too).