Como faço para: Extensão de destaque da sintaxe do Visual Studio
-
16-09-2020 - |
Pergunta
Eu quero desenvolver uma extensão para o VS2010 que me permitirá fazer alguns recursos adicionais para realçar a sintaxe.
Eu instalei o SDK, como faço para começar?
Por favor, dê um pequeno snippet (ou um link para o código) onde posso ver como começar.
note : eu tenho que verificar todo o bloco de código, ou o sdk me diz em cada palavra o que é, como é declarado etc.?
Solução
Há um pouco decente de informações para escrever classificadores. I escreveu um artigo de blog sobre isso por algum tempo de volta.
Quanto a amostras / código, há:
- Um modelo de projeto que é enviado com o SDK (olhar sob C # -> Extensibilidade)
- (resposta de Brian menciona) o Ook Language Service
- a modelo para escrever classificadores (o link é para a fonte do modelo, então você terá que não templatizar os $ foo $ peças)
- a classificador de diff (bastante antigo)
- um par de outros classificadores nos vários projetos na minha página do github .
A resposta para a outra parte de sua pergunta sobre se o SDK lhe disser o que cada palavra é, a resposta é "não", com algumas ressalvas "meio". Em geral, os modelos de linguagem subjacentes não são expostos, embora você possa fazer coisas como consumir as informações de classificação de outros classificadores, na esperança de que eles lhe dêem informações suficientes; Alguns, como c #, tendem a dar uma boa quantidade de informações que podem não aparecer no IDE nas configurações de fontes e cores padrão (marque as ferramentas-> Opções-> Ambiente-> Configurações de Fontes e Cores para ver se você deseja A mudança pode já estar lá), e outros, como vb, tendem a não. Você também pode usar coisas como o DTE codemodel , mas eu tenho nunca ouvi falar de alguém ter experiências realmente boas com isso.
Se você quiser um exemplo de consumo de informações de classificação, você pode ver como esta comentárioTextTagger.cs (parte de uma extensão ortográfica) faz isso.
Outras dicas
Você pode verificar
http://code.msdn.microsoft.com/ooklanguage
Quais tem um marcador de sintaxe em "ioktokentag.cs" na amostra C #.Você tem que analisar um bloco inteiro de texto, é claro, mas isso não é muito difícil.
(descobriu que link de http://social.msdn.microsoft.com/forums/en-us/vsx/thread/657212c1-1685-4ED6-BE2F-CBF34FCC5B20 )