Acessando as camadas de texto usando a API Legacy
Uma camada de texto geralmente encapsula algum aspecto do layout de texto. Por exemplo, uma camada de "função-um-vez" oculta texto antes e depois de uma função que contém o cursor (ponto de inserção de texto).
Uma camada de texto reside entre um buffer e um modo de exibição, e modifica a maneira como o modo de exibição vê o conteúdo do buffer.
Informações de camada de texto
A lista a seguir descreve como as camadas de texto funcionam no Visual Studio:
O texto em uma camada de texto pode ser adornado com marcadores e cor de sintaxe.
No momento, você não pode implementar suas próprias camadas.
Uma camada expõe IVsTextLayer, que é derivada de IVsTextLines. O buffer do texto também é implementado como uma camada, que permite que um modo de exibição lidar polimorficamente com camadas subjacentes.
Qualquer número de camadas pode ser a razão entre a exibição e o buffer. Cada camada lida apenas com a camada abaixo dela, e o modo de exibição lida principalmente com a camada de nível mais alto. (O modo de exibição tem algumas informações sobre o buffer).
Uma camada pode afetar somente as camadas que se encontram abaixo. Ele não pode afetar as camadas acima dela, além de eventos padrão de origem.
No editor de texto oculto, texto sintético e quebra automática são implementados como camadas. Você pode implementar o texto oculto e sintético sem interagir diretamente com as camadas. Para obter mais informações, consulte A estrutura de tópicos (estrutura de pacote gerenciado) e IVsSyntheticTextSession.
Cada camada de texto tem seu próprio sistema de coordenadas local que é exposto por meio de IVsTextLayer interface. A camada de quebra automática de linha, por exemplo, pode conter duas linhas enquanto o buffer de texto subjacente pode conter apenas uma linha.
O modo de exibição se comunica com camadas através do IVsLayeredTextView interface. Use esta interface para reconciliar as coordenadas de modo de exibição com coordenadas de buffer.
Qualquer camada, como a camada de texto sintético que se origina o texto deve fornecer uma implementação local de CreateTrackingPoint.
Além disso IVsTextLayer, uma camada de texto deve implementar IConnectionPointContainer e acionar os eventos a IVsTextLinesEvents interface.
Consulte também
Conceitos
Cor de sintaxe no Custom Editors
Outros recursos
Através de marcadores de texto com a API Legacy
Personalizando Menus e controles de Editor usando a API Legacy