/** * @return unicode symbols which glyphs {@link #hasGlyphsToBreakDrawingIteration() have problems} * at the {@link #getFont() target font}. */ @NotNull public TIntHashSet getSymbolsToBreakDrawingIteration() { if (!myCheckedForProblemGlyphs) { parseProblemGlyphs(); } return mySymbolsToBreakDrawingIteration; }
/** * We've experienced a problem that particular symbols from particular font are represented really * weird by the IJ editor (IDEA-83645). * * <p>Eventually it was found out that outline font glyphs can have a 'y advance', i.e. * instruction on how the subsequent glyphs location should be adjusted after painting the current * glyph. In terms of java that means that such a problem glyph should be the last symbol at the * {@link Graphics#drawChars(char[], int, int, int, int) text drawing iteration}. * * <p>Hopefully, such glyphs are exceptions from the normal processing, so, this method allows to * answer whether a font {@link #getFont() referenced} by the current object has such a glyph. * * @return true if the {@link #getFont() target font} has problem glyphs; <code>false</code> * otherwise */ public boolean hasGlyphsToBreakDrawingIteration() { if (!myCheckedForProblemGlyphs) { parseProblemGlyphs(); } return myHasGlyphsToBreakDrawingIteration; }