evildictaitor said:I would prefer the IDE to auto-expand out my "var" keywords to what they really are when I give it a shortcut key - this would allow you to just writeYggdrasil said:*snip*var myFoo = select ... <Tab> <Tab> <ShortCutKey>IEnumerable<ICollection<Structure<MyFoo<Dictionary<Gets<Quite<Long>, Doesnt> It>>...>> myFoo = select ...Actually adding keywords dilutes the language and makes it harder to read.
Auto-expanding var might aid writing, but not reading. Heavily nested generics are hard to read, for me - but I'm not arguing that var can be even harder to parse. We decided to enforce as a coding standard at using
var only when the full, specific and concrete type name is specified on the same line (i.e. var dict = new Dictionary<int, string>). If we initialize an object from a method, factory or anything else, we specify the full type name.
Regarding your second point - when you start relying on LINQ a lot, IEnumerable<T> becomes a de-facto language keyword. Just like int and bool are defined as language keywords for the oh-so-common Int32 and Boolean, to name a few. Or, to be even more similar, the  array specifier.