2010-07-08 5 views
10

Existe-t-il un moyen pour que VS 2008 intellisense prenne par défaut les propriétés par rapport aux classes dans une collision de noms?Paramètres de priorité Intellisense de Visual Studio 2008

Exemple:

Dans mon champ, j'ai une propriété Foo, mais je suis aussi en utilisant une classe Foo. Lors de l'écriture de code, si je commence à taper Fo, IntelliSense VS2008 pense que je veux dire la classe Foo. Je veux qu'il pense que je veux dire la propriété Foo à la place.

+1

100 primes pour le problème le plus ennuyeux de ma journée. Parce que la priorité est dans le mauvais ordre quand j'ai une propriété avec le même nom que la classe, quand je la tape et que j'appuie sur '.' elle ** s'auto-complète avec le nom complet de la classe **, ce qui signifie * ne peut plus * utiliser la propriété sans supprimer tout ce que sh * t VS vient d'ajouter (en tapant ctrl + z, puis retour arrière, puis '.' à nouveau). Ce problème se produit même après avoir supprimé '.' de la case d'option" validée après avoir appuyé sur les caractères suivants ". Ce problème semble certes mineur, jusqu'à ce qu'il vous arrive 200 fois en un jour. –

+0

Je vais attribuer la prime à tous ceux qui connaissent un moyen d'arrêter ce problème spécifique (pas nécessairement en changeant la priorité des catégories). –

+2

(en C#) Vous pouvez alias la classe: 'using FooClass = Foo;' Si vous êtes dans un membre d'instance, vous pouvez vous référer à la propriété Foo comme 'this.Foo'. Au niveau de la classe, il doit être pleinement qualifié. C'est pourquoi les directives de conception de Microsoft suggèrent que vous ne nommez pas les propriétés ou les méthodes de la même manière que leur type de retour. –

Répondre

3

Malheureusement, ce n'est pas possible. La personnalisation de la priorité des catégories de valeur, telles que les classes/propriétés, n'est pas prise en charge.

1

Il n'existe aucune possibilité dans VS2010 et même pas dans ReSharper 5.0 pour résoudre ce problème. Selon JetBrains, il ne s'agira pas non plus d'une fonctionnalité de ReSharper 6.0. J'utilise un nom différent pour la propriété, quand il commence à me rendre agressif et à le refactoriser après que j'ai fait la plupart du travail.

Mise à jour:

je l'ai signalé il y a quelque temps la question de JetBrains et je viens de recevoir un e-mail que la fonction a été ajoutée et sera disponible dans la version 6.1. Alors bonne nouvelle pour les utilisateurs de ReSharper sur celui-ci!

http://youtrack.jetbrains.net/issue/RSRP-273067?projectKey=RSRP

+0

+1 pour suggérer le refactor redouté. J'éviterais d'utiliser le même nom sur une propriété et une classe en premier lieu. – WEFX

0

Je pensais la même chose aujourd'hui exacte.

Alors que la fonctionnalité n'est pas dans VS VS, il est tout à fait possible de modifier du code pour ajouter cette fonctionnalité. Par exemple, le XAML Presenter, probablement nommé d'après le composant de présentation que vous devez modifier, est similaire. XAML Presenter

Il se rétrécit par l'espace de noms et trie par type d'attribut. Fondamentalement, je vais juste prendre la liste que la source d'achèvement Intellisense donne et trier la liste. Cela semble assez simple.

Plus difficile est la mise en œuvre des contrôles de l'interface utilisateur. Je déteste concevoir des contrôles d'interface utilisateur. . .

Edit:

Cependant, je ne prévois une façon de le faire sans casser les caractéristiques Intelllisense de ReSharper.

0

Utilisez VS 2010, je suppose? Cependant, je ne vois pas dans quelle situation VS mettrait les classes sur les propriétés.

Questions connexes