澳门新葡亰网址下载Visual Basic 二十五周年,微软是否应该开源?

by admin on 2020年4月30日

1991年5月20日,比尔盖茨在Windows World 上发布了Visual
Basic。微软官方博客上周庆祝了VB二十五周年。自新CEO上任之后,微软的企业文化被认为发生了很大改变,开始积极拥抱开源。因此在二十五周年之际,粉丝再次在官网呼吁微软开源VB,以前的多次呼吁都遭到了微软的拒绝。但最新的呼吁看起来结局也一样,用户在官网发表的帖子被合并到了旧的帖子。
             

就是这个烦人的图层,像打不跑的苍蝇

稿源:solidot奇客

QQ截图20190619164332.png (上传于2019-06-22
20:40:20)
澳门新葡亰网址下载 1

我在上篇博客狠狠的吐槽了这个设计
https://blog.bccn.net/静夜思/66713
,不解决掉这个问题终日寝食难安。

苍天有眼,今天让我搜到一个10年前的帖子

10年前就有人受这个困扰(然而官僚化的微软始终听不到用户的声音),并且开发了一个扩展,当然这个扩展现在已经不能用了。好在给了我一个启发。

于是我开始搜vs的扩展,联机搜“tooltips”关键字的时候搜到一个叫“Tame Visual Studio Editor
Tooltips
”的扩展,看上去像是关于编辑器Tooltips的,仔细看了一下介绍,果然是解决这个问题的。点击download安装即可。扩展详细介绍:

然而我高兴的还是太早了。这个扩展只支持了C#语言,VB.NET根本不如作者的法眼。好在这个扩展是开源的,顺着扩展的介绍页面找到了他的github页面

(可怜目前为止只有2个star,1个fork,其中一个star是我点的,唯一的fork也是我拉了个分支,可见微软的技术在开源社区是何等的冷清),通过阅读
TameVisualStudioEditorToolTips/TameQuickInfo.cs
的代码发现没有对vb.net的支持,这是15、16、17行的代码:

    [ContentType("CSharp")]
    [ContentType("XAML")]
    [ContentType("XML")]

然后克隆这个项目,加上Basic、HTML、CSS、Jscript的支持

namespace TameVisualStudioEditorToolTips {

    using System.ComponentModel.Composition;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Input;
    using Microsoft.VisualStudio.Language.Intellisense;
    using Microsoft.VisualStudio.Shell;
    using Microsoft.VisualStudio.Text;
    using Microsoft.VisualStudio.Utilities;

    [Export(typeof(IAsyncQuickInfoSourceProvider))]
    [Name("Tame Quick Info")]
    [Order(Before = "Default Quick Info Presenter")]
    [ContentType("CSharp")]
    [ContentType("Basic")]
    [ContentType("XAML")]
    [ContentType("XML")]
    [ContentType("HTML")]
    [ContentType("CSS")]
    [ContentType("JScript")]
    internal class TameQuickInfo : IAsyncQuickInfoSourceProvider {

        public IAsyncQuickInfoSource TryCreateQuickInfoSource(ITextBuffer textBuffer) {
            return textBuffer.Properties.GetOrCreateSingletonProperty(() => new CancelingQuickInfoSource());
        }
    }

    internal class CancelingQuickInfoSource : IAsyncQuickInfoSource {

        public CancelingQuickInfoSource() {
        }

        public void Dispose() {
        }

        public async Task<QuickInfoItem> GetQuickInfoItemAsync(IAsyncQuickInfoSession session, CancellationToken cancellationToken) {
            var isKeyDown = false;
            ThreadHelper.JoinableTaskFactory.Run(async delegate {
                // now on the UI thread
                await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
                isKeyDown = Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift) || Keyboard.IsKeyDown(Key.LeftCtrl)  || Keyboard.IsKeyDown(Key.RightCtrl);
            });

            // back on background thread
            if (!isKeyDown) {
                _ = session.DismissAsync();
            }
            return await System.Threading.Tasks.Task.FromResult<QuickInfoItem>(null);
        }
    }
}

在visual studio里编译,安装,最后大功告成!😁

下面是我编译的扩展,支持C#、VB.NET代码屏蔽弹出浮层,下载了直接安装即可:

TameVisualStudioEditorToolTips.vsix

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图