aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/syntax_highlighting.rs
Commit message (Collapse)AuthorAgeFilesLines
* Add punctuation highlighting for highlighting punctuation in doctests, fix ↵Paul Daniel Faria2020-06-231-12/+13
| | | | highlighting in doctests
* Add support for marking doctest items as distinct from normal code, add ↵Paul Daniel Faria2020-06-231-7/+11
| | | | default tag to all doctest elements
* Syntax highlighting for documentation comments on macro definitionsLeander Tentrup2020-06-191-2/+1
|
* Merge #4903bors[bot]2020-06-181-1/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | 4903: Add highlighting support for doc comments r=matklad a=Nashenas88 The language server protocol includes a semantic modifier for documentation. This change exports that modifier for doc comments so users can choose to highlight them differently compared to regular comments. Example: <img width="375" alt="Screen Shot 2020-06-16 at 10 34 14 AM" src="https://user-images.githubusercontent.com/1673130/84788271-f6599580-afbc-11ea-96e5-7a0215da620b.png"> CC @woody77 Co-authored-by: Paul Daniel Faria <[email protected]>
| * Ensure all existing doctest code highlights have documentation modifierPaul Daniel Faria2020-06-171-4/+4
| |
| * Add highlighting support for doc commentsPaul Daniel Faria2020-06-171-1/+8
| |
* | Syntax highlighting for escape sequences in stringsLeander Tentrup2020-06-171-4/+18
|/
* Syntactic highlighting of NAME_REF for injectionsLeander Tentrup2020-06-151-3/+60
| | | | | | This commit adds a function that tries to determine the syntax highlighting class of NAME_REFs based on the usage. It is used for highlighting injections (such as highlighting of doctests) as the semantic logic will most of the time result in unresolved references. It also adds a color to unresolved references in HTML encoding.
* Fix syntax highlighting of recursive macrosLeander Tentrup2020-06-151-16/+21
| | | | Add syntax highlighting for the BANG (`!`) token if the parent is `MACRO_CALL`.
* Highlight only the unsafe operator itselfAleksey Kladov2020-06-081-6/+2
|
* Merge #4775bors[bot]2020-06-081-0/+1
|\ | | | | | | | | | | | | | | 4775: Add goto def for enum variant field r=matklad a=unexge Closes #4764. I'm not familiar with ra codebase, there might be better ways to do that :smile: Co-authored-by: unexge <[email protected]>
| * Add `FieldShorthand` variant to `NameClass`unexge2020-06-081-0/+1
| |
* | Implement syntax highlighting for doctestsLeander Tentrup2020-06-081-46/+80
|/
* Add highlight support for unsafe fn calls and raw ptr derefPaul Daniel Faria2020-06-021-1/+24
|
* Merge #4664bors[bot]2020-05-311-77/+84
|\ | | | | | | | | | | | | | | 4664: Generate feature documentation from code r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Move the rest of the features to generated docsAleksey Kladov2020-05-311-77/+84
| |
* | Add semantic highlight to QUESTION tokenRoland Ruckerbauer2020-05-291-0/+1
|/ | | | Made it an operator with controlFlow modifier.
* Add self keyword semantic token typeLaurențiu Nicola2020-05-251-0/+1
|
* Handle more cases in `highlight_name_by_syntax`Matthew Jasper2020-05-241-11/+19
|
* Highlight `true` and `false` as literalsMatthew Jasper2020-05-241-0/+1
|
* Color attribute functionsGeorge Fraser2020-05-191-1/+3
|
* Color `for` as a regular keyword when it's part of impl _ for _George Fraser2020-05-101-1/+8
|
* Color `in` as a control keywordGeorge Fraser2020-05-101-1/+2
|
* Highlight the name in macro declarationsMatthew Jasper2020-05-101-0/+13
|
* Highlight mutable statics as mutableMatthew Jasper2020-05-101-1/+7
|
* Introduce new semantic highlight token for format specifierLeander Tentrup2020-04-281-1/+1
|
* Rename StructField -> FieldAleksey Kladov2020-04-251-1/+1
|
* Convert code to text-sizeAleksey Kladov2020-04-251-6/+6
|
*-. Merge #3998 #4006bors[bot]2020-04-241-56/+168
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3998: Make add_function generate functions in other modules via qualified path r=matklad a=TimoFreiberg Additional feature for #3639 - [x] Add tests for paths with more segments - [x] Make generating the function in another file work - [x] Add `pub` or `pub(crate)` to the generated function if it's generated in a different module - [x] Make the assist jump to the edited file - [x] Enable file support in the `check_assist` helper 4006: Syntax highlighting for format strings r=matklad a=ltentrup I have an implementation for syntax highlighting for format string modifiers `{}`. The first commit refactors the changes in #3826 into a separate struct. The second commit implements the highlighting: first we check in a macro call whether the macro is a format macro from `std`. In this case, we remember the format string node. If we encounter this node during syntax highlighting, we check for the format modifiers `{}` using regular expressions. There are a few places which I am not quite sure: - Is the way I extract the macro names correct? - Is the `HighlightTag::Attribute` suitable for highlighting the `{}`? Let me know what you think, any feedback is welcome! Co-authored-by: Timo Freiberg <[email protected]> Co-authored-by: Leander Tentrup <[email protected]> Co-authored-by: Leander Tentrup <[email protected]>
| | * Adapt format specifier highlighting to support escaped squences and unicode ↵Leander Tentrup2020-04-221-22/+41
| | | | | | | | | | | | identifiers
| | * Apply suggestions from code reviewLeander Tentrup2020-04-221-4/+3
| | | | | | | | | | | | Co-Authored-By: bjorn3 <[email protected]>
| | * Implement syntax highlighting for format stringsLeander Tentrup2020-04-201-3/+66
| | | | | | | | | | | | | | | | | | | | | Detailed changes: 1) Implement a lexer for string literals that divides the string in format specifier `{}` including the format specifier modifier. 2) Adapt syntax highlighting to add ranges for the detected sequences. 3) Add a test case for the format string syntax highlighting.
| | * Refactor flattening logic for highlighted syntax rangesLeander Tentrup2020-04-181-54/+85
| | |
* | | Introduce ActiveParameterAleksey Kladov2020-04-241-5/+3
|/ /
* / Add semantic tag for unresolved referencesAleksey Kladov2020-04-181-14/+15
|/ | | | | | | | | | | This is a quick way to implement unresolved reference diagnostics. For example, adding to VS Code config "editor.tokenColorCustomizationsExperimental": { "unresolvedReference": "#FF0000" }, will highlight all unresolved refs in red.
* Fix incorrect order of syntax highlight rangesLeander Tentrup2020-04-171-1/+2
|
* Merge #3826bors[bot]2020-04-081-5/+54
|\ | | | | | | | | | | | | | | | | | | | | | | | | 3826: Flatten nested highlight ranges during DFS traversal r=matklad a=ltentrup Implements the flattening of nested highlights from #3447. There is a caveat: I needed to add `Clone` to `HighlightedRange` to split highlight ranges ~and the nesting does not appear in the syntax highlighting test (it does appear in the accidental-quadratic test but there it is not checked against a ground-truth)~. I have added a test case for the example mentioned in #3447. Co-authored-by: Leander Tentrup <[email protected]>
| * Simplify HTML highlighter and add test case for highlight_injection logicLeander Tentrup2020-04-061-1/+7
| |
| * Flatten nested highlight ranges during DFS traversalLeander Tentrup2020-04-031-6/+49
| |
* | Make control token modifier less ambiguousAleksey Kladov2020-04-061-1/+1
|/ | | | | | | | | In textmate, keyword.control is used for all kinds of things; in fact, the default scope mapping for keyword is keyword.control! So let's add a less ambiguous controlFlow modifier See Microsoft/vscode#94367
* Fix importsAleksey Kladov2020-03-031-6/+2
|
* Rename NameDefinition -> DefinitionAleksey Kladov2020-03-031-12/+12
|
* Highlight assist testsAleksey Kladov2020-03-031-1/+1
|
* Remove stray dbgAleksey Kladov2020-03-031-2/+2
|
* More principled approach for gotodef for field shorhandAleksey Kladov2020-03-021-13/+17
| | | | | Callers can now decide for themselves if they should prefer field or local definition. By default, it's the local.
* Remove debug printAleksey Kladov2020-02-291-1/+0
|
* Correctly flag 'lifetime definitions as definitionsAleksey Kladov2020-02-281-2/+7
|
* Classify name takes const patterns into accountAleksey Kladov2020-02-281-7/+9
|
* Fix union classificationAleksey Kladov2020-02-281-1/+1
|
* Cleanup highlighting tagsAleksey Kladov2020-02-281-13/+17
|