Author Topic: CodeBlocks and Fira Code issues  (Read 23369 times)

Offline sodev

  • Lives here!
  • ****
  • Posts: 500
CodeBlocks and Fira Code issues
« on: May 22, 2019, 09:13:39 pm »
I am using the latest CodeBlocks revision 11703 together with wxWidgets f668f5b36f to play around with Fira Code and it doesn't work correctly, neither on Windows (Windows 10 1809) nor Linux (CentOS 7.6.1810 with MATE Desktop). The effects are slightly different though.

The good news: ligatures are working (when using Direct2D), the bad news: only the regular variant of Fira Code is working. All other variants (light, medium, bold, italic and its combinations) are not working in the editor. But they are working in the preview of the editor settings page (im not talking about the font selection dialog but the text left to the button to open it) and get applied to the line numbers.

In the editor however, something else happens, and for me this is different on Windows and Linux. If i select another variant on Linux it seems it is still using the regular variant, on Windows however for most variants it seems like a replacement font is used instead, only a few seem to use the regular variant.

For reference, on Linux in Eclipse all variants do work for me.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: CodeBlocks and Fira Code issues
« Reply #1 on: May 22, 2019, 10:55:32 pm »
Check if it works in scite or some other scintilla based editor. If it works there then it is a problem of C::B else it is in wx/scintilla/direct2d.

What wx version are you using?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline sodev

  • Lives here!
  • ****
  • Posts: 500
Re: CodeBlocks and Fira Code issues
« Reply #2 on: May 23, 2019, 10:14:18 pm »
Did some tests with quite some surprising effects.

First some interesting aspect about how you select a font, each application (CodeBlocks, Notepad++, SciTE) does it different:
  • In CodeBlocks you select the font face name and select weight and italics from a combined list of selections (e.g. light, bold italics)
  • In Notepad++ you have multiple font entries with the font face name and the weight attached except bold (e.g. Fira Code, Fira Code Light) and a boolean for bold and italics
  • In SciTE you select the font face name and have to specify italics as boolean and the weight as integer

In SciTE everything works as excepted on Windows and Linux, using the proper weight values selects the proper variant, applying italics works as well.

Now Notepad++, this is really strange, every combination works (yes, you can apply bold to everything) in plain text mode. If you turn on the c++ lexer (didn't try others) it breaks. The regular text is shown in the selected variant, BUT the bold and italics property gets only applied to the invisible characters (you need to turn them on). And ligatures don't work at all.

What wx version are you using?
wxWidgets f668f5b36f
That git revision, in 32 bit if that matters, with all compatibility options disabled.

Offline sodev

  • Lives here!
  • ****
  • Posts: 500
Re: CodeBlocks and Fira Code issues
« Reply #3 on: May 24, 2019, 06:30:56 am »
Ok, this happens if you are lazy and do the tests in a hurry, the strange things with enabled c++ lexer in Notepad++ stop to happen if you actually do not set the Default Style but the Global Override.

I took some more time and applied the workaround to enable SC_TECHNOLOGY_DIRECTWRITE in Notepad++ and discovered something interesting. In contrast to my previous test now certain fonts do also fail, but i get ligatures instead :). I get a replacement font for every selection except plain Fira Code and Fira Code Retina, so all font names with attached weight in the name do not work. This sounds quite similar to my CodeBlocks experience. So apparently only the SciTE way to select font weight and italics works in Direct2D mode correctly.

Offline BlueHazzard

  • Developer
  • Lives here!
  • *****
  • Posts: 3353
Re: CodeBlocks and Fira Code issues
« Reply #4 on: May 27, 2019, 12:11:15 am »
I tested this today with latest codebocks on windows and wx3.1.2 and codeblocks crashes after typing
Code
...

Have to recompile all with debug symbols to get a backtrace...

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1632
Re: CodeBlocks and Fira Code issues
« Reply #5 on: May 27, 2019, 10:16:43 am »
With wx3.1.2 you will get crashes with Code Completion if you don't backport New Pagodi's changes in wx trunk to wx3.1.2

I published a patch with this backport in the forum, see http://forums.codeblocks.org/index.php/topic,22974.msg156992.html#msg156992
« Last Edit: May 27, 2019, 10:23:36 am by Miguel Gimenez »

Offline BlueHazzard

  • Developer
  • Lives here!
  • *****
  • Posts: 3353
Re: CodeBlocks and Fira Code issues
« Reply #6 on: May 27, 2019, 01:03:07 pm »
But with wx trunk it should work? I will recompile and test...

Offline sodev

  • Lives here!
  • ****
  • Posts: 500
Re: CodeBlocks and Fira Code issues
« Reply #7 on: May 27, 2019, 01:21:44 pm »
I get no crashes with the revision that im using

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1632
Re: CodeBlocks and Fira Code issues
« Reply #8 on: May 30, 2019, 07:50:39 pm »
Using Fira Code Normal, size 10, the editor looks OK but Code Completion auto complete popups show a bigger than normal font, so the texts are truncated on the right side. To reproduce just move the cursor to the first column and press #.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: CodeBlocks and Fira Code issues
« Reply #9 on: May 30, 2019, 08:17:37 pm »
Does it happen the same way in stc demo in wxWidgets' samples?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1632
Re: CodeBlocks and Fira Code issues
« Reply #10 on: May 30, 2019, 08:47:58 pm »
Tested annotations in STC sample and more tests in C::B. The problem is not he font but the Direct Write activation:

- STC: I can't change the font, but the popup has a font slightly smaller than the main text
- C::B without Direct Write (default mode): the font size seems identical to the editor one. No text truncation
- C::B with Direct Write: the popup font is noticeably bigger that the editor one and the text is ellipsized.

I have attached three screen captures in one file.

EDIT: the two C::B tests are made with Courier New size 10.
« Last Edit: May 30, 2019, 08:50:46 pm by Miguel Gimenez »

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: CodeBlocks and Fira Code issues
« Reply #11 on: May 30, 2019, 11:56:05 pm »
- STC: I can't change the font, but the popup has a font slightly smaller than the main text
You can change the font using code. Make sure it is the same in both applications.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1632
Re: CodeBlocks and Fira Code issues
« Reply #12 on: May 31, 2019, 10:20:42 am »
Changed the font in STC sample forcing Courier New size 10, no visual changes.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: CodeBlocks and Fira Code issues
« Reply #13 on: May 31, 2019, 08:19:41 pm »
There is an array with styles are you sure you've changed the font for all styles?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1632
Re: CodeBlocks and Fira Code issues
« Reply #14 on: May 31, 2019, 08:47:52 pm »
I changed the font in three places, one was in a loop for all styles. Anyway the original font seems to be Courier New 10, as the aspect doesn't change (it did change when I wrote "CourierNew" for family name instead of "Courier New").