Первые Принципы: Wilfred James Hansen
- Знает, что Пользователь
- Минимизирует Запоминание
- , Оптимизируют Операции
- Инженер для Ошибок
Последующие Расширения: доктор Theo Mandel
Пользователи Места в Управлении
- Режимы Использования Рассудительно (немодальный)
- Позволяют Пользователям использовать или Клавиатуру или Мышь (гибкий)
- , Позволяют Пользователям Изменять Фокус (прерываемый)
- Дисплей, который Описательные сообщения и текст (полезный)
- Обеспечивают Непосредственным и Обратимым Действиям, и Обратная связь (прощение)
- Обеспечивает значимые Пути, и Выходы (пригодный для навигации)
- Снабжают Пользователей Различными Уровнями квалификации (доступный)
- , Делают Пользовательский интерфейс Прозрачным (facilitative)
- , Позволяют Пользователям Настраивать Интерфейс (предпочтения)
- , Позволяют Пользователям Непосредственно Управлять Интерфейсными Объектами (интерактивный)
, Уменьшают Загрузку в память Пользователей
- , Уменьшают Кратковременную память (помнят)
- , Полагаются на Распознавание, не, Отзыв (распознавание)
- Обеспечивает, Визуальные индикаторы (сообщают)
- , Обеспечивают Значения по умолчанию, Отмену, и Восстановление (прощение)
- Обеспечивает, Интерфейсные Ярлыки (частота)
- Продвигают Синтаксис Действия объекта (интуитивный)
- Использование Реальные Метафоры (передача)
- Пользователь, Прогрессивное Раскрытие (контекст)
- Способствует Визуальной Ясности (организуют)
, Делают Интерфейс Последовательным
- , Выдерживают Контекст Задач Users’ (непрерывность)
- , Поддерживают Непротиворечивость в, и через продукты (опыт)
- Сохраняют Результаты Взаимодействия Тем же (ожидания)
- , Обеспечивают Эстетическое Обращение, и Целостность (отношение)
- Поощряют Исследование (предсказуемый )
Возможно, вы захотите посмотреть надстройку VisualAssist . Его автозаполнение учитывает то, что вы ввели недавно, поэтому по умолчанию выбирает самое последнее совпадение. Он также работает в большем количестве мест, чем стандартный IntelliSense (например, включает пути).
Небольшое предупреждение, однако, когда вы начнете его использовать, будет трудно вернуться назад ...
В VS2010 реализация intellisense чрезвычайно проста - при условии, что у вас есть готовый ответ на 2 вопроса:
В моем пользовательском редакторе я потратил 90% времени на то, чтобы парсер NDjango выдал мне то, что мне нужно, и только 10% на фактическую "реализацию" "intellisense
Править
Открытый исходный код проекта, не стесняйтесь загрузить код и поиграть с ним.
Взгляните на ViEmu , эмуляцию Vi / vim для Visual Studio, Word , Outlook и SQL Server. Если он по-прежнему не отвечает вашим потребностям, попробуйте применить свой собственный. Ознакомьтесь с Справочником по расширению Visual Studio и в этом руководстве , чтобы помочь вам начать работу с надстройками VS.
Как указано в других ответах, Intellisense в Visual Studio 2010 стал намного лучше. Не только расширяемость, но и реализация.
Теперь он фильтрует список членов, содержащих типизированное имя где угодно внутри них. Это также работает с классами и типами, поэтому вам не нужно запоминать полное имя типа или класса. И последнее, что не менее важно, вы можете фильтровать список, используя шаблон именования Pascal Case. Это означает меньше ввода и меньше ошибок.
Дополнительную информацию об улучшениях Intellisense в VS2010 можно найти в блоге ScottGu .
CodeRush отображать предложения по завершению слов в строках или где-либо еще. У них есть бесплатная версия, но я не знаю, поддерживает ли она эту функцию.
Модель расширяемости в 2010 году намного проще, но (очевидно) все еще является движущейся целью.
Должно быть возможно получить что-то простое, используя интеллектуальную часть этого ] для предоставления ICompletionSource , который объединяет любые значения, которые вы хотите предоставить вместе с результатами существующих реализаций.
Мониторинг текущего буфера для имен должен включать некоторую игру с ITextView и ITextBuffer .
Существует пример изменения уровня представления на codeplex, но вы должны иметь возможность использовать его в качестве основы, на которой можно попытаться изменить сторону данных.
Если у вас есть несколько слов, которые вы хотите заполнить, вы можете легко создать для этого несколько фрагментов.
Это больше, чем просто уловка, но это может быть полезно.
Фрагмент xml:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>retype</Title>
<Shortcut>retype</Shortcut>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="csharp">
<![CDATA[ThisIsTheTextIHateToRetype();$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Resharper из Jetbrains также имеет очень умное завершение. CTRL + SHFIT + Space активирует их «интеллектуальное» завершение кода (помимо обычных результатов CTRL + Space), которое зависит от типа и контекста. Я часто нахожу, что он выбирает для меня подходящие имена.