2015-12-11 17 views
14

Vorrei aggiungere un nuovo editor predefinito (esterno) per un tipo di file in Visual Studio 2012. Il mio editor (Notepad ++) supporta il salto diretto a una linea specifica tramite argomenti del programma. Purtroppo lo msdn reference non menziona alcun parametro macro per utilizzare l'offset di linea (e carattere) in un determinato contesto (ad esempio quando si fa doppio clic su un risultato di ricerca).Modifica o aggiunta di un editor predefinito in Visual Studio

E 'possibile ottenere la linea e/o del carattere di offset nei Argomenti campo in Aggiungi programma?

AddProgrammeDialog

Edit: C'è un modo per accedere a queste aperti eventi attraverso le estensioni con le informazioni sul file, la linea e il programma di apertura scelto?

risposta

7

Utilizzando $(ItemPath) -n$(CurLine) come argomenti hanno fatto il lavoro per me:

enter image description here

+1

Purtroppo questo funziona solo se il file è già aperto nell'editor di testo di Visual Studio che sto cercando di evitare. Quando applico gli stessi argomenti alla finestra di dialogo Aggiungi programma come un editor esterno, le macro '$ (...)' non sembrano essere risolte quando Notepad ++ si apre con * C: \ Programmi (x86) \ Notepad ++ \ $ (ItemPath) non esiste. Crealo? * – BeyelerStudios

+0

@BeyelerStudios Oh. Io vedo. Da dove vuoi aprirlo? –

+0

Principalmente dalla finestra * Trova risultati * – BeyelerStudios

4

Non è possibile per difetto, perché non ci sono Arguments che riflette la ricerca-risultato. Quindi devi prima aprire il file all'interno di VisualStudio e poi con lo strumento esterno.

Penso che potresti creare un plugin di Visual Studio personalizzato e agganciarti alla selezione dei risultati di ricerca. Guarda Adding Search to a Tool Window disponibile per VS 2015, 2013 e 2012. Alcune implementazioni in questo modo sembrano essere Quick Open File Plugin for VS2010 ma manca una casella di testo per inserire il numero di telefono.

Ulteriore documentazione per creare VS Plugin su MSDN

Btw, Hai controllato la "Promt per gli argomenti" per estendere Thomas risposta:

External Tools VS Dialog

1

È possibile ottenere una soluzione a questo che prende 2 passaggi, entrambi richiedono poco tempo una volta che hai i risultati della ricerca. Double-click the result, press ctrl-shift-alt-L (può essere cambiato ovviamente).

I passaggi seguenti sono dettagliati per mostrare il più possibile in modo che tutti possano comprendere i passaggi e modificare di conseguenza.

Creare un file cmd che lancerà Notepad ++ con la lima, la linea, e gli argomenti delle colonne

Salva il codice qui sotto in d:\util\startnppwith3args.cmd

setlocal 
set _file=%0 
set _line=%1 
set _column=%2 
set _line=%_line:"=% 
set _column=%_column:"=% 
: remember to use "" as first arg as blank title so we call npp properly :) 
start "" "F:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -nosession -n%_line% -c%_column% %_file% 
pause 
endlocal 

strumento Crea esterno per contattare startnppwith3args.cmd

tools | External Tools...

enter image description here

Ricordare la posizione di questo comando, 3 in questo caso.

Creare una scorciatoia da tastiera per "Command3"

tools | Options | Keyboard e la ricerca di externalcommand

enter image description here

Assegnare la combinazione di tasti desiderata per questo comando ctrl-shift-alt L per esempio.

Verifica dei comandi è come previsto dal menu Strumenti

enter image description here

ora mettere tutto in atto

  • Aprire un file in Visual Studio
  • Cerca qualcosa nel file
  • Fare doppio clic desiderato risultato della ricerca
  • Press ctrl-shift-alt L

Notepad ++ si apre il file sulla linea e colonna per il risultato della ricerca!

enter image description here

cosa rimane?

  • Prendere la pause fuori del file cmd come è stato utilizzato solo per scopi di debug.
  • decidere se si vuole -multiInst -nosession argomenti
  • Date un'occhiata a Arguments for External Tools per tutte le variabili che sono assegnati quando si lancia uno strumento esterno.

Conclusione

questo era in domanda interessante, e una zona non avevo esplorato prima. Potrei usare questa tecnica da solo e per altri scopi.

+0

Non penso che sarai in grado di ottenere la linea e la posizione da una linea di codice sorgente di risultati di ricerca specifici (quella su cui fai doppio clic), che è ciò che OP vuole, solo la linea corrente e la posizione del Finestra degli strumenti 'Trova risultati', che non è affatto la stessa. –

+0

Quando si fa doppio clic sul risultato della ricerca, si viene riportati alla riga e alla colonna del risultato. Lo strumento esterno viene avviato con queste informazioni. L'ho definito come la soluzione in due passaggi nella parte superiore del mio post. –

+0

Ok scusa, non l'ho visto. Comunque, IMHO non è una risposta abbastanza soddisfacente :-) –

Problemi correlati