IntelliSense: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
SieBot (discussione | contributi)
m Bot: Aggiungo: es:IntelliSense
fix forma
 
(28 versioni intermedie di 25 utenti non mostrate)
Riga 1:
[[ImmagineFile:Intellisense.png|thumb|250px|ScreenshotSchemata dell'IntelliSense in azione in [[Microsoft Visual C++]]]]
 
'''IntelliSense™IntelliSense''' è una forma di [[Autocompletamento|completamento automatico]] resa popolare da dall'[[VisualAmbiente Studiodi sviluppo integrato|IDE]] di [[IntegratedMicrosoft DevelopmentVisual EnvironmentStudio]]. Serve inoltre come documentazione per i nomi delle [[Variabile (matematica)|variabili]], delle [[Funzione (matematica)|funzioni]] e dei [[Metodo (programmazione)|metodi]] usando [[metadati]] e [[reflectionRiflessione (informatica)|riflessioni]].
 
== Panoramica ==
 
L'uso dell'Intellisense è un metodo conveniente per visualizzare la descrizione delle funzioni, in particolar modo la lista dei loro parametri. Questa tecnologia riesce a velocizzare lo sviluppo del software riducendo la quantità di input attraverso la tastiera richiesto. Riduce inoltre il bisogno di appoggiarsi a documentazione esterna dato che molte informazioni come firme dei metodi, lista dei parametri e altro appaiono in automatico sul [[focus dell'attenzione]] dello sviluppatore.
 
:{{Citazione|Per rendere più semplice il riferimento ai membri di un oggetto o di una classe, l'IntelliSense mostra una lista di membri disponibili per quella classe o ogettooggetto dopo aver digitato il nome della classe o dell'oggetto e un punto.|Murach's (PaginaC#, 2005, p. 56)}}
''Murach's C# 2005'' dice:
:Per rendere più semplice il riferimento ai membri di un oggetto o di una classe, l'IntelliSense mostra una lista di membri disponibili per quella classe o ogetto dopo aver digitato il nome della classe o dell'oggetto e un punto. (Pagina 56)
 
Il meccanismo funziona accedendo a un [[database]] automaticamente generato in memoria di classi, nomi di variabili e altri costrutti definiti o referenziati dall'applicazione che si sta sviluppando. La "classica" implementazione dell'IntelliSense funziona intercettando ''caratteri chiave'' come un punto, che dipendono dal linguaggio usato. Non appena lo sviluppatore digita uno di questi caratteri subito dopo un'entità contenente uno o più membri accessibili (come le variabili contenute o le funzioni), l'IntelliSense mostra i suggerimenti di completamento attraverso una finestra pop-up. Lo sviluppatore può sia accettare il suggerimento premendo un tasto di completamento (<Tab> o <Invio> o un terminatore specifico come il [[punto e virgola]] in C++) o continuare a digitare il nome. Alla fine IntelliSense determinerà esattamente quale varibilevariabile o funzione lo sviluppatore desidera, fornito un numero sufficiente di informazioni. Il meccanismo permette inoltre allo sviluppatore di scegliere tra i vari overload delle funzioni, nei linguaggi che supportano la [[programmazione orientata agli oggetti]]. L'IntelliSense può inoltre mostrare una breve descrizione della funzione in una finestra pop-up (questa caratteristica è dipendente dalla quntitàquantità di informazioni contenute nel [[codice sorgente]]).
 
Questo meccanismo fu incluso in VB 5.0 e si trova in tutte le ultime versioni di Visual Studio. L'IntelliSense supporta [[C++]], [[C Sharp|C#]], [[J Sharp|J#]], [[Visual Basic]], [[XML]], [[HTML]] and [[XSLT]] tra gli altri. Altri prodotti Microsoft che includono l'IntelliSense sono [[FrontPage]], [[Expression Web]] (nella vista codice), gli IDE per [[Visual Basic for Applications|VBA]] in [[Microsoft Office]] e altri ancora.
 
Funzionalità simili sono apparse in altri editor di codice. Per esempio, [[Vim (editor di testo)|Vim]] (dalla versione 7.0) supporta ''omnicompletion'': una forma di [[autocompletamento]] programmabile simile a l'IntelliSense. Molti editor e IDE che incorporano funzionalità simili usano [[ctags]] per creare la loro listlista di parole contestuali ([[UltraEdit]] ad esempio). Altri come [[Borland]] e l'IDE di [[Sun Microsystems]] usano database interni.
 
== Esempio (C++)di utilizzo ==
 
PrendiamoSia ad esempiodata un'applicazione cheC++ dotata hadi una classe <ttkbd>Foo</ttkbd> con alcuni metodi:
 
<pre>
<syntaxhighlight lang="c++">
class Foo {
public:
void bar();
void foo_bar(char c, int n);
};
</syntaxhighlight>
 
</pre>
Quando lo sviluppatore usa questa classe nel codice, ad esempio:
<pre>
Foo foo;
foo.
</pre>
non appena lo sviluppatore digita il punto dopo '''<tt>foo</tt>''', l'IntelliSense automaticamente mostra una lista di tutti i metodi disponibili (ad esempio <tt>bar()</tt> and <tt>foo_bar()</tt>). Lo sviluppatore può quindi selezionarne uno utilizzndo i tasti freccia e premendo un carattere di completamento quando la funzione membro corretta è evidenziata. Quando disponibile, l'IntelliSense mostra una breve descrizione della funzione membro come nella documentazione del codice sorgente.
 
L'IntelliSense indica anche i parmetri richiesti in un'altra finestra pop-up mentre lo sviluppatore li completa. Mentre lo sviluppatore digita il nome di una variabile, il meccanismo propone inoltre dei suggerimenti per il suo completamento. L'IntelliSense continua a mostrare i parametri, evidenziando quello su cui si lavora, mentre lo sviluppatore digita.
 
Quando viene inizializzata un'istanza di classe, ad esempio, <kbd>Foo foo</kbd>, non appena viene digitato <kbd>foo.</kbd>, il sistema di IntelliSense mostra automaticamente l'elenco dei metodi disponibili (in questo caso <kbd>bar()</kbd> e <kbd>foo_bar()</kbd>) e, se disponibile, mostra una breve descrizione della funzione membro recuperata dalla documentazione del codice sorgente. L'IntelliSense indica anche i parametri richiesti in un'altra finestra a comparsa mentre vengono digitati, suggerendo anche le potenziali variabili da usare. Man mano che vengono digitati i parametri, IntelliSense evidenzia il parametro corrente.
Lo sviluppatore può "forzare" l'IntelliSense a mostrare la sua lista pop-up fuori dal contesto premendo <Ctrl>+<spazio>. In [[Visual Studio]] questa mostra l'intero object model del dominio dell'applicazione disponibile allo sviluppatore.
 
LoÈ sviluppatore puòpossibile "forzare" l'IntelliSense a mostrare la sua lista pop-up fuori dal contesto premendo <Ctrl>+<spazio>. In [[Visual Studio]] questa mostra l'intero object model del dominio dell'applicazione disponibile allo sviluppatore.
==Storia==
 
== Storia ==
L'IntelliSense fu originariamente introdotto come una caratteristica di un prodotto mainstream Microsoft nel 1996, con [[Visual Basic 5.0 Control Creation Edition]], che era essenzialmente un prototipo disponibile al pubblico di [[Visual Basic]] 5.0. Anche se inizialmente la caratteristica era stata pensata per l'IDE di Visual Basic, l'IntelliSense fu velocemente incorporato in [[Visual FoxPro]] e [[Visual C++]] in [[Visual Studio]] 97 (una revisione dopo che fu visto per la prima volta in Visual Basic). Poiché era basato sulle capacità introspettive del [[Component Object Model|COM]], le versioni dell'IntelliSense di Visual Basic erano sempre più robuste e complete delle corrispettive versioni 5.0 e 6.0 (97 e 98 nella sequenza di nomi di Visual Studio ) di Visual C++, che non aveva il beneficio di essere completamente basato sul COM. Queste limitazioni (criticate da molti sviluppatori VC++ sin dalla versione 97) sono state rimosse nella linea seguente di prodotti-[[Microsoft .NET|.NET]]. Per esempio, una delle più richieste caratteristiche mancanti dai prodotti pre-.NET era il suppportosupporto per i [[Template (programmazione)|templatestemplate]], che adesso è disponibile.
 
L'IntelliSense è entrato in una nuova fase di sviluppo con l'unificazione dei prodotti in [[Visual Studio .NET]] rilasciatopubblicato nel 2001, migliorato da una più potente introspezione e dalle capacità di documentazione del codice del .NET [[framework]]. Con [[Visual Studio .NET#Visual Studio 2005|Visual Studio 2005]], l'IntelliSense è attivato di default quando lo sviluppatore inizia a scrivere, anziché richiedere caratteri particolari (anche se questo comportmentocomportamento può essere disattivato). L' [[IntegratedAmbiente di developmentsviluppo environmentintegrato|IDE]] ha una maggiore capacità di contestualizzazione bastabasata su quello che lo sviluppatore sta digitando, al punto che persino i costrutti base del linguaggio come <ttkbd>for</ttkbd> e <ttkbd>while</ttkbd> sono inclusi nella lista delle scelte.
 
== Collegamenti esterni ==
* [http{{cita web|url=https://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vcovrautomaticstatementcompletion.asp |titolo=Intellisense su MSDN (in inglese)]}}
 
{{portale|informatica}}
[[Categoria:Strumenti di sviluppo]]
 
[[Categoria:StrumentiAmbienti di sviluppo]]
[[de:IntelliSense]]
[[en:IntelliSense]]
[[es:IntelliSense]]
[[ja:インテリセンス]]
[[pl:IntelliSense]]