Compartilhar via


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