atom / language-clojure

Clojure package for Atom
Other
49 stars 48 forks source link

Distinct coloring for metadata? #85

Open vemv opened 5 years ago

vemv commented 5 years ago

Hi there!

As per https://github.com/github/linguist/blob/master/vendor/README.md , this repo the is the source of truth used for all Clojure syntax highlighting within Github. Correct?

Assuming that, I'm not satisfied with how metadata is rendered here:

(defn foo
  [^::example.config/topic-name topic]
 ...)

The metadata and topic have the same coloring, and therefore the metadata looks to humans like another function argument - which is misleading.

Not sure if this is also the case within Atom.

This is problematic for me since, at work we use some libraries/patterns heavily based off metadata.

As the simplest / most conservative fix, keyword metadata (as opposed to symbol metadata) could get the same exact coloring than plain keywords.

After all, metadata keywords are still keywords, so why should they lose their keyword coloring?

Let me know what you think.

Thanks - V

rsese commented 5 years ago

Sorry for the delay!

As per https://github.com/github/linguist/blob/master/vendor/README.md , this repo the is the source of truth used for all Clojure syntax highlighting within Github. Correct?

Yes that's correct :+1:

Before moving forward, can you fill out the issue template as much as possible (I realize you may not use Atom and are reporting how things look on github.com)? The format and information in the template is super helpful for us when triaging issues.

Additionally, can you be a bit more specific? It's not always the case that the person triaging an issue is familiar with the particular language (Atom has many language repositories) - for example:

The metadata and topic have the same coloring, and therefore the metadata looks to humans like another function argument - which is misleading.

What's "the metadata" in this case?

Being very specific and reporting individual issues rather general issues is also helpful. See some of the open issue for examples: https://github.com/atom/language-clojure/issues.


We require the template to be filled out on all new issues and pull requests. We do this so that we can be certain we have all the information we need to address your submission efficiently. This allows the maintainers to spend more time fixing bugs, implementing enhancements, and reviewing and merging pull requests.

Thanks for understanding and meeting us half way :grinning:

vemv commented 5 years ago

I realize you may not use Atom and are reporting how things look on github.com

Indeed, that is the case.

What's "the metadata" in this case?

The metadata is metadata as per the Clojure language. I would expect that the person attending this repository is familiar with Clojure itself.

We require the template to be filled out on all new issues and pull requests.

I considered it carefully and found no extra information I could provide by following that template.

Aerijo commented 5 years ago

I would expect that the person attending this repository is familiar with Clojure itself

I considered it carefully and found no extra information I could provide by following that template

@rsese's reply addressed both these points. The person triaging (i.e. verifying; not necessarily fixing it) may not be familiar with Clojure, and the issue template is there to make this verification process easier and more consistent. For example, the "Expected" and "Actual" sections would have clarified what you were referring to. If you find a particular section of the template unrelated, you could mark it so with something like "na". This shows that you

considered it carefully and found no extra information I could provide by following that template

and didn't just ignore the template, which happens often enough to have that stock response.