Classe Completor
Va a capo e applica le modifiche più a una visualizzazione di testo come una sola operazione.
Questa API non è conforme a CLS. L'alternativa conforme a CLS è [None].
Gerarchia di ereditarietà
System.Object
Microsoft.VisualStudio.Package.Completor
Spazio dei nomi: Microsoft.VisualStudio.Package
Assembly: Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
Sintassi
'Dichiarazione
<CLSCompliantAttribute(False)> _
Public Class Completor _
Implements IDisposable
[CLSCompliantAttribute(false)]
public class Completor : IDisposable
Il tipo Completor espone i seguenti membri.
Costruttori
Nome | Descrizione | |
---|---|---|
Completor | Inizializza una nuova istanza di Completor classe. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
AtEndOfLine | Determina se la posizione interna del cursore si trova alla fine della riga corrente. | |
IsExpansionActive | Determina se un frammento di codice viene modificato. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Apply | Applica tutte le modifiche apportate con Completor oggetto. | |
Dispose | Cancella tutte le allocazioni effettuate prima di tale oggetto verrà eliminato. | |
Equals | Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object) | |
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) | |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) | |
RefreshLine | Ottiene la riga di testo da Source oggetto. | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) | |
TypeBackspace | Esegue il numero specificato di spazi indietro sulla riga modificata e aggiorna la posizione interna del cursore. | |
TypeChar | Inserire il carattere specificato e aggiorna la posizione interna del cursore. | |
TypeChars | Inserire la stringa specificata di posizione interna del cursore di aggiornamenti e di caratteri. | |
TypeDelete | Esegue il numero specificato di operazioni delete nella riga modificata. | |
TypeLeft | Consente di spostare la posizione interna del cursore il numero specificato di percorsi a sinistra. | |
TypeRight | Consente di spostare la posizione interna del cursore il numero specificato di posizioni verso destra. |
In alto
Note
Questa classe di supporto viene utilizzata per gestire le modifiche nella riga corrente a causa delle azioni di completamento, ovvero azioni che comporta l'inserimento automatico di testo.
Questa classe vengono raccolti i caratteri e le azioni del cursore e li applica alla posizione corrente del cursore come una sola azione composta.In questo modo tutti i caratteri da null in una sola operazione.Questa classe supporta l'inserimento di qualsiasi carattere del testo, spostati sui sinistra e a destra del cursore nonché l'eliminazione e lo spazio finale (ognuno di questi viene applicata la chiamata di un metodo diverso in questa classe).
Inoltre, tutti i caratteri e movimenti immessi del punto di inserimento vengono aggiunti a una macro controllare se tale registrazione è attivato.
questa classe gestisce un buffer interno che contiene tutti i caratteri da inserire.Questo buffer viene considerato come flusso dei caratteri, qualsiasi carattere può essere inserito nel buffer, anche caratteri di controllo come nuova riga.solo dopo che i caratteri sono inseriti sono tutti i caratteri di controllo gestiti.Ad esempio, se si utilizza questa classe per inserire la stringa “Hello\nThere“in un file di origine vuoto, il file di origine conterrà due righe.Tuttavia, il cursore viene posizionato sei caratteri dopo la parola “Hello“nella prima riga (cinque lettere in„There“e un carattere di nuova riga per intero sei caratteri).Questa classe non riconosce più righe in questa situazione, le funzionalità offerte da visualizzare è un flusso di caratteri da inserire.
Note per gli implementatori
Questa classe è indipendente e non è in genere motivo derivare da questa classe.
Note per i chiamanti
Creare un'istanza di e utilizzare questa classe per eseguire il wrapping di un set degli inserimenti orientati al carattere nella posizione corrente del cursore.
[!NOTA]
Poiché questa classe viene in genere utilizzata in un'operazione di completamento, il carattere di terminazione o di commit è già essere aggiunti alla riga prima che questa classe non tutte le modifiche.Se è necessario sostituire il carattere di commit, è necessario chiamare TypeBackspace metodo come prima operazione per eliminare il carattere di commit dalla riga.
Esempi
In questo esempio viene illustrata un'operazione di completamento semplice tramite Completor classe in una versione derivata di Declarations classe.Wrapping di questa operazione in istanze qualsiasi testo è stato eseguito il commit.
namespace MyLanguagePackage
{
class MyDeclarations : Declarations
{
LanguageService m_languageService;
MyDeclarations(LanguageService service) : base()
{
m_languageService = service;
}
public override char OnAutoComplete(IVsTextView view,
string committedText,
char commitChar,
int index)
{
if (committedText != null && view != null && m_languageService != null)
{
bool fHasCommitChar = commitChar != '\0' && commitChar != '\r';
// If user completes word with single quotes, use single quotes;
// Otherwise, always use double quotes.
char quoteChar = (commitChar == '\'') ? '\'' : '"';
Completor completor = new Completor(m_languageService,
view,
"Add Quotes");
// All edits are applied when the completor object is disposed off.
using (completor)
{
int delta = fHasCommitChar ? 1 : 0;
completor.TypeLeft(committedText.Length + delta);
completor.TypeChar(quoteChar);
completor.TypeRight(committedText.Length + delta);
if (commitChar != quoteChar)
{
completor.TypeChar(quoteChar);
}
}
}
return '\0'; // No further operations needed
}
}
}
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.