Open fentie opened 13 years ago
Hi, these errors exist in both light and dark?
The only selector I can find for this meta.function-call.php which will also select things like function_name() which is suppose to be grey. Hopefully there's some other way to do it.
Is now fixed in light and dark.
I just put the cursor over "new" and hit ctrl-shift-P (Mac) and it gives the selectors that match, so I used that to fill in the XML. You're right too, any issues with the non-gray colors are also in the light version too. I just remember reading that the Dark version was incomplete and it's the one I use, so that's where I put my efforts.
Any chance you could provide a simple Gist with some PHP which shows up the broken bits? The sample included with Solarized doesn't cover everything.
Pretty much everything I listed above was shown in the example file. I'd like a more thorough example too, though, honestly. I'm basically opening the screenshot (http://ethanschoonover.com/solarized/img/screen-php-dark.png) and Textmate with the sample file and noting differences, then fixing them. I have odd hobbies, it seems.
Do you want to pull in my upstream changes into your fork and see what it fixes, it should whittle down that list a little bit.
I’m talking about the Dark theme here. Keep in mind I don’t know anything about TextMate theming. I’m just working with the test file and comparing it to the canonical screenshot of Solarized. Let me add some commenting to the list that started this issue:
Semicolons
These (;
) are orange in the current TextMate theme but grey in Solarized. punctuation.terminator.expression.php
needs to be updated.
Scope resolution operator (double semicolon)
I think fentie means the double colon used for calling static functions within classes. These are green in Solarized and orange in this theme. This one might be impossible to fix since both ::
and ->
use the same TextMate selector (keyword.operator.class.php
) but use different colours in Solarized, green and orange respectively.
new
keywordecho
keyword
Currently displayed in green while Solarized uses orange. This is another one for the unable to fix list. TextMate uses a single selector (support.function.construct.php
) for several specific functions (or so it seems). An example within the test case is the empty
function. This means echo
and empty()
will always use the same colour in TextMate while Solarized uses different colours.
Class names
These use a darker base colour in this theme than in Solarized. support.class.php
needs to be updated.
Parentheses in PHP embedded in HTML
Actually parentheses are overall a little off. Solarized has red for all parentheses while this theme has some of them orange. The problem seems to be that TextMate does not have a selector for parentheses and instead uses the basic text colour value.
source.php.embedded.block.html
this is set to orange, resulting in orange parentheses, andsource.php.embedded.line.html
this is set to a grey base, resulting in grey parentheses.Both these selectors would need red as their default colour for parentheses to show correctly. Unless I’m missing some special TextMate setting.
<
and >
in HTMLHTML attributes
These use a lighter base colour in this theme than in Solarized. Should be the same colour as HTML’s <
and >
. entity.other.attribute-name.html
needs to be updated. (Or not? I’m not 100% sure.)
Commas
These suffer of the same problem as aforementioned parentheses. They don’t seem to have their own selector but just take on the base colour. This also means they will always be the same colour as parentheses.
Personally I rather see red parentheses and commas than making both of them grey, as Solarized defines them.
Parenthesis within arrays (2nd opening parenthesis on lines 18 & 19)
Because parentheses aren’t matched by TextMate these have taken on the default colour set in meta.array.php
. If you want these to be coloured correctly the default colour for meta.array.php
needs to be updated to red.
@deplorableword: could you refer to the above emphasised “titles” when you commit patches for them? That way it’ll be easier to keep track. Let’s try to keep this list up-to-date and strike of those that have been fixed. Please let me know which ones have already been fixed so they can be struck off.
If anyone spots another problem with the PHP theme please open a separate issue. That’s the best way to keep problems organised and for deplorableword to close them when they’re solved.
Agreed, both quotes are fixed, as are arrays, new, and class method calls. Yes, I meant colon instead of semicolon, sorry.
I still see HTML tags as normal font weight instead of bold, but it's also possible the font I'm using doesn't have a bold, I'll have to verify that later.
both quotes are fixed, as are arrays, new, and class method calls.
Marked these as fixed.
I’ve also fixed some spelling faults and added a description to HTML attributes.
@fentie:
I still see HTML tags as normal font weight instead of bold, but it's also possible the font I’m using doesn’t have a bold
I had the same problem. Only after switching font did it become clear. Just redownloaded the theme to make sure and they really are bold.
The bold text I'm not sure if it's a TextMate or Typeface rendering issue or both.
@Zegnat Thanks for this list, very helpful. I will make single commits which fix these and name them accordingly.
I'm going through and noting some mismatches in the test file(s). I'll start making pull requests for them as I have time, but this way others can help out as well:
double quotessingle quotesnew keywordclass method callsHTML attributesarray constructsI'm not yet any good at writing Textmate selectors, but I'll fill in the color values as I can.
Thanks for the port.