L'editor di MS Visual Studio evidenzia alcuni identificatori non parole chiave come parole chiave in file C++. In particolare "evento" e "matrice" sono trattati come parole chiave. Questo è molto fastidioso per me, perché non sono parole chiave in C++. So come aggiungere le mie parole chiave all'elenco di identificatori evidenziati dalla sintassi, ma come rimuovere quelli incorporati esistenti? Sono consapevole che questo potrebbe richiedere la patch di alcuni file eseguibili. Quindi qualcuno sa come fare?Esiste un modo per impedire che una "parola chiave" venga sintattica in MS Visual Studio
risposta
Non sembra che una funzione di disattivazione della sintassi sia esposta in modo intuitivo.
L'unico modo in cui posso pensare di disattivare selettivamente la colorazione della sintassi è creare un nuovo plug-in di sintassi per la colorazione per l'IDE ed elencare tutte le parole chiave che si desidera colorare. Microsoft fornisce informazioni in this article su come eseguire questa attività.
Lo svantaggio di questo approccio è che il tuo IDE ora avrà due linguaggi C++ e non sono sicuro di come selezionerà il plug-in da scegliere una volta caricato un file .h o .cpp. Tuttavia, this article suggerisce che è possibile sovrascrivere i plug-in C++ esistenti riscrivendo alcune chiavi di registro.
Questo eliminerebbe anche tutte le funzionalità di C++ IntelliSense. –
Penso che l'unico modo "semi-pratico" per ottenere ciò è creare un Visual Studio package che utilizza Text Markers per nascondere in modo selettivo le parole chiave che non si desidera colorare. Anche questo non è un compito di un giorno. Modifica: Probabilmente non è nemmeno un compito di un'intera settimana per qualcuno che non conosce in modo complicato l'API di Visual Studio e tutte le sue stranezze, specialmente se non lo trova privo di bug.
In altre parole, probabilmente vuoi semplicemente ignorarli.
Grazie all'articolo menzionato da Steve Guidi, sono riuscito a trovare il file eseguibile che contiene le classi Colorizer e IScanner. È denominato vcpkg.dll e si trova in/Microsoft Visual Studio 8/VC/vcpackages. (Sto usando Visual C++ 2005 Express Edition, le cose potrebbero essere diverse in altre versioni.)
Il vcpkg.dll contiene stringhe con codifica UTF-16 con terminazione null. L'ho aperto con l'editor esadecimale e ho cercato "array". C'è una sola stringa del genere nel file, quindi l'ho sostituita con "arrry". (È importante mantenere l'ordine alfabetico relativo rispetto ad altre parole chiave). Poi ho cercato "evento", si presenta in più punti, ma ce n'è solo uno che non fa parte di una stringa più lunga, quindi Ho sostituito questo con "evvvt". Dopo aver avviato Visual Studio, si è scoperto che "array" e "evento" non erano più evidenziati, ma "arrry" e "evvvt" lo erano!
Ovviamente questo è un brutto trucco, e annullerà la garanzia, e probabilmente va contro il Microsoft EULA, ma che sollievo per gli occhi! Ad ogni modo, se vuoi farlo, fai attenzione e ricorda di eseguire il backup del file.
Questo hack non sembra funzionare per VS10. – paperjam
- 1. Visual Studio: Esiste una ricerca incrementale per l'intera soluzione?
- 2. "esiste" parola chiave in Python?
- 3. "piattaforma parola chiave sconosciuta" durante il ripristino in Visual Studio
- 4. -isistema per compilatore MS Visual Studio C++
- 5. WP7 + HTML5 - Come impedire che una tela venga selezionata/evidenziata
- 6. Modo idiomatico per specializzarsi sulla parola chiave type per i lisps che non rendono una parola chiave una classe
- 7. Come impedire che la stringa venga internata
- 8. In che modo MS Visual Studio determina che il file di origine è stato modificato?
- 9. Impedire che NA venga utilizzato in un lm regresion
- 10. Esiste un Ccache per Visual Studio?
- 11. Posso impedire che l'oggetto venga copiato da std :: memcpy?
- 12. Impedire che un processo venga ucciso in C#?
- 13. Impedire che un servizio Android venga distrutto dopo uno smantellamento
- 14. C'è un modo per impedire a visual studio di inserire l'attributo datafld-bind
- 15. Come posso impedire che una finestra di dialogo venga nascosta
- 16. Esiste un #define per 64 bit in Visual Studio 2010?
- 17. Esiste una parola chiave `declare` in ES6/7?
- 18. Esiste un modo per impedire che le pagine AJAX vengano visualizzate da sole in un browser?
- 19. Regex per cercare una parola in una stringa in Visual Studio
- 20. In che modo la parola chiave "as" funziona internamente?
- 21. Come impedire che un modulo venga ridimensionato dall'utente?
- 22. Visual Studio 2005: esiste un modo semplice per indentare correttamente in un file ASPX?
- 23. Esiste un modo per impedire a Visual Studio di stampare le istruzioni rilasciate dal thread nella finestra di output?
- 24. Impedire Visual Studio da file di crittografia
- 25. È possibile rinominare un progetto in Visual Studio in modo che anche il nome della cartella venga rinominato?
- 26. Esiste un modo per evidenziare il testo in grassetto nei commenti Intellisense in Visual Studio 2010?
- 27. Esiste un'alternativa CodeMap per Visual Studio Professional
- 28. È possibile impostare un colore per una parola specifica in Visual Studio 9?
- 29. Blocchi oggettivi C: esiste un modo per evitare che il "sé" venga mantenuto?
- 30. Esiste un equivalente alla parola chiave "var" C# in C++/CLI?
Possibile duplicato: http://stackoverflow.com/questions/372580/why-is-array-a-reserved-word-in-cc –
Questo non è un duplicato - questo è chiedere perché 'array' è una parola chiave nel linguaggio. –