Introducing a Scopes Mapper to map from RA scopes to TextMate scopes with fallbacks.
Current scopes defined:
```
['keyword.unsafe', ['storage.modifier', 'keyword.other', 'keyword.control']],
['function', ['entity.name.function']],
['parameter', ['variable.parameter']],
['type', ['entity.name.type']],
['builtin', ['variable.language', 'support.type', 'support.type']],
['text', ['string', 'string.quoted', 'string.regexp']],
['attribute', ['keyword']],
['literal', ['string', 'string.quoted', 'string.regexp']],
['macro', ['support.other']],
['variable.mut', ['variable']],
['field', ['variable.object.property']],
['module', ['entity.name.section']]
```
Need to complement with further fallbacks as some themes fail.
This commit is contained in:
@@ -2,7 +2,7 @@ import seedrandom = require('seedrandom');
|
||||
import * as vscode from 'vscode';
|
||||
import * as lc from 'vscode-languageclient';
|
||||
import * as scopes from './scopes'
|
||||
|
||||
import * as scopesMapper from './scopes_mapper';
|
||||
|
||||
import { Server } from './server';
|
||||
|
||||
@@ -65,10 +65,13 @@ export class Highlighter {
|
||||
tag: string,
|
||||
textDecoration?: string
|
||||
): [string, vscode.TextEditorDecorationType] => {
|
||||
const scope = scopes.find(tag)
|
||||
|
||||
if (scope) {
|
||||
const decor = createDecorationFromTextmate(scope);
|
||||
const foundRule = scopesMapper.toRule(tag, scopes.find) || scopes.find(tag)
|
||||
|
||||
|
||||
|
||||
if (foundRule) {
|
||||
const decor = createDecorationFromTextmate(foundRule);
|
||||
return [tag, decor];
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user