2011-01-27 27 views
13

Estoy experimentando algo recientemente que es realmente molesto y no puedo entender por qué lo está haciendo. No estoy seguro de cuándo comenzó, porque recientemente limpié mi máquina, así que tal vez es una actualización reciente o tal vez de hace un tiempo.Visual Studio 2010 JavaScript Intellisense capitalizando la F en "función"

De cualquier manera, esto es lo que está sucediendo. Cuando declaro una función anónima en línea y empiezo a escribir la parte "function() {...}", el intellisense VS2010 aparece y reemplaza mi función en minúscula con su propia "Función" en mayúscula. Supongo que esta es una función estática en JavaScript o JScript o algo más, pero no lo sé. De cualquier manera, es cuando escribo el "()" que supone que eso es lo que quiero.

Si declaro una función independiente, no se ve afectada porque no pongo el "()" después de eso, por lo que simplemente deja lo que escribo.

Aquí hay algunas capturas de pantalla de lo que está sucediendo.
javascript intellisenseenter image description here

Es muy frustrante porque yo no lo noto cada vez y luego, por supuesto, la función no se ejecuta. También trabajo en VS2008 todos los días y en 2008, tanto la "función" como la "Función" se enumeran en el menú intellisense, pero el valor predeterminado es minúscula, por lo que no me afecta.

¿Hay alguna manera de que pueda anular la configuración de intellisense? Encuentre un archivo y elimine el de la "Función" de la lista porque nunca lo usaré? ¿Volver a la opción "función" en minúsculas?

Cualquier ayuda sería genial. ¡Gracias!

-Jorin

+1

+1 Esto es muy molesto (aunque sea por diseño) – SLaks

+1

@SLaks - Por su diseño? 'Function' es el constructor' function', y rara vez se usa (y, de hecho, debe usarse solo en raras ocasiones). Si alguien decidía que debería ser el valor predeterminado, no sabían realmente lo que estaban haciendo. – benekastah

Respuesta

2

casi he llegado a la conclusión de que es más productivo para desactivar Intellisense de Visual Studio en archivos JavaScript. Sin embargo, si lo hace como la mayoría de sus aspectos, la opción "Declaración de finalización" es una manera de remediar el problema particular de que la sustitución de function con Function cuando se pulse el espacio:

enter image description here

Actualización:

Creo nueva separación paren de VS2010 debe haber abusado de mí en cosas inconscientemente a escribir como esto (tenga en cuenta el espacio entre la función y parens):

$(document).ready(function() { 

}); 

Cuando lo hace, no inserta la terminación Intellisense de Function.

Con VS2010 sp1, agregaron de nuevo una opción para formatear los parens sin espacio. Así, al escribir el cierre });, formatea el paren espaciamiento de nuevo a:

$(document).ready(function() { 

}); 

... que es lo que quería desde el principio.

Convolucionado al principio, pero se convierte en memoria muscular muy rápidamente.

+0

Curiosamente, en realidad tengo esa opción seleccionada. Aparentemente, a pesar de que dice "solo tab o enter", aparentemente significa "solo tabulador o ingresar o escribir entre paréntesis". :-) Sí, realmente no quiero deshabilitar completamente el intellisense porque algunos de estos proyectos tienen un TONELADAS de funciones y es bueno para encontrarlos, pero no mucho más ... – Jorin

+0

Aparentemente eludí la finalización paren-disparada a través de algo más que no había notado. Actualizado la respuesta. –

+0

Sí, creo que tendré que acostumbrarme a escribir ese espacio. Muy desafortunado. Esperaba que alguien supiera una forma de editar los archivos intellisense o lo que sea ... – Jorin

2

Este problema puede deberse a Resharper, al menos en Visual Studio 2013. La extensión agrega el archivo DHtml.js que incluye "Función". (Para cualquier otro complemento, esto sería motivo suficiente para que lo desinstale. Lo bueno es que hace muchas otras cosas bien.) Ver esta pregunta: Javascript Intellisense list too long...

Editar: JetBrains es la fijación de este error: (http://youtrack.jetbrains.com/issue/RSRP-400812). Mientras tanto ...

Las opciones de Resharper le permiten desactivar sus aumentos intellisense por idioma. Para resolver el problema, puede desactivar Javascript se vean afectados, así:

enter image description here

+0

Si bien es cierto que Resharper presenta este problema, la solución sugerida elimina intellisense automático en los idiomas que no seleccione. Puedes obtener intellisense nativo mediante Ctrl-Spacing aunque ... – Steve

+1

@Steve seguro que sí. OMI, el javascript intellisenseless es preferible a javascript que se rompe a medida que lo escribe. Esperemos ansiosamente la publicación que contenga esa corrección de errores, por lo que ya no es una decisión de alternativa menos desagradable. –

+0

Soy flojo, me gusta mi Intellisense :) – Steve

Cuestiones relacionadas