├── art
├── file-icon.png
├── snippets.png
├── html-intellisense.png
├── html-intellisense-partial.png
├── html-intellisense-component.png
└── html-intellisense-directives.png
├── src
├── Resources
│ ├── icon.png
│ ├── Preview.png
│ └── VueFile.png
├── source.extension.ico
├── JavaScript
│ └── Snippets
│ │ ├── snippets.pkgdef
│ │ └── VuePack
│ │ ├── vue.snippet
│ │ ├── vuef.snippet
│ │ └── vued.snippet
├── registry.pkgdef
├── Images.imagemanifest.cs
├── Properties
│ └── AssemblyInfo.cs
├── HTML
│ ├── ContentType
│ │ └── VueContentTypeDefinition.cs
│ ├── Completion
│ │ ├── ElementCompletion.cs
│ │ ├── ElementDirectiveCompletion.cs
│ │ ├── AttributeDirectiveCompletion.cs
│ │ ├── BaseCompletion.cs
│ │ └── AttributeCompletion.cs
│ ├── VueCreationListener.cs
│ └── DirectivesCache.cs
├── source.extension.cs
├── Images.imagemanifest
├── VSPackage.cs
├── Helpers
│ └── ProjectHelpers.cs
├── source.extension.vsixmanifest
├── packages.config
├── source.extension.resx
└── VuePack.csproj
├── lib
├── Microsoft.Html.Core.dll
├── Microsoft.Web.Editor.dll
└── Microsoft.Html.Editor.dll
├── .gitignore
├── ISSUE_TEMPLATE.md
├── CHANGELOG.md
├── .gitattributes
├── LICENSE
├── appveyor.yml
├── VuePack2017.sln
├── README.md
└── CONTRIBUTING.md
/art/file-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/art/file-icon.png
--------------------------------------------------------------------------------
/art/snippets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/art/snippets.png
--------------------------------------------------------------------------------
/src/Resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/src/Resources/icon.png
--------------------------------------------------------------------------------
/art/html-intellisense.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/art/html-intellisense.png
--------------------------------------------------------------------------------
/src/Resources/Preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/src/Resources/Preview.png
--------------------------------------------------------------------------------
/src/Resources/VueFile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/src/Resources/VueFile.png
--------------------------------------------------------------------------------
/src/source.extension.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/src/source.extension.ico
--------------------------------------------------------------------------------
/lib/Microsoft.Html.Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/lib/Microsoft.Html.Core.dll
--------------------------------------------------------------------------------
/lib/Microsoft.Web.Editor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/lib/Microsoft.Web.Editor.dll
--------------------------------------------------------------------------------
/lib/Microsoft.Html.Editor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/lib/Microsoft.Html.Editor.dll
--------------------------------------------------------------------------------
/art/html-intellisense-partial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/art/html-intellisense-partial.png
--------------------------------------------------------------------------------
/art/html-intellisense-component.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/art/html-intellisense-component.png
--------------------------------------------------------------------------------
/art/html-intellisense-directives.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madskristensen/VuePack2017/HEAD/art/html-intellisense-directives.png
--------------------------------------------------------------------------------
/src/JavaScript/Snippets/snippets.pkgdef:
--------------------------------------------------------------------------------
1 |
2 | [$RootKey$\Languages\CodeExpansions\JavaScript\Paths]
3 | "VuePack"="$PackageFolder$\VuePack"
--------------------------------------------------------------------------------
/src/registry.pkgdef:
--------------------------------------------------------------------------------
1 | [$RootKey$\ShellFileAssociations\.vue]
2 | "DefaultIconMoniker"="af265e71-5e4f-43f6-9d14-8b198b7e74f2:0"
3 |
4 | [$RootKey$\Languages\File Extensions\.vue]
5 | @="{9bbfd173-9770-47dc-b191-651b7ff493cd}"
6 |
7 | [$RootKey$\Editors\{40d31677-cbc0-4297-a9ef-89d907823a98}\Extensions]
8 | "vue"=dword:32
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | packages
2 |
3 | # User files
4 | *.suo
5 | *.user
6 | *.sln.docstates
7 | .vs/
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Rr]elease/
12 | x64/
13 | [Bb]in/
14 | [Oo]bj/
15 |
16 | # MSTest test Results
17 | [Tt]est[Rr]esult*/
18 | [Bb]uild[Ll]og.*
19 |
20 | # NCrunch
21 | *.ncrunchsolution
22 | *.ncrunchproject
23 | _NCrunch_WebCompiler
--------------------------------------------------------------------------------
/src/Images.imagemanifest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Microsoft.VisualStudio.Imaging.Interop;
3 |
4 | namespace VuePack
5 | {
6 | public static class Images
7 | {
8 | private static Guid _guid = new Guid("{af265e71-5e4f-43f6-9d14-8b198b7e74f2}");
9 |
10 | public static ImageMoniker VueFile { get { return new ImageMoniker { Guid = _guid, Id = 0 }; } }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Installed product versions
2 | - Visual Studio: [example 2015 Professional]
3 | - This extension: [example 1.1.21]
4 |
5 | ### Description
6 | Replace this text with a short description
7 |
8 | ### Steps to recreate
9 | 1. Replace this
10 | 2. text with
11 | 3. the steps
12 | 4. to recreate
13 |
14 | ### Current behavior
15 | Explain what it's doing and why it's wrong
16 |
17 | ### Expected behavior
18 | Explain what it should be doing after it's fixed.
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Roadmap
2 |
3 | - [ ] Item templates
4 |
5 | Features that have a checkmark are complete and available for
6 | download in the
7 | [CI build](http://vsixgallery.com/extension/4163aa08-9878-4b1c-a1ee-58ab67f7db5b/).
8 |
9 | # Changelog
10 |
11 | These are the changes to each version that has been released
12 | on the official Visual Studio extension gallery.
13 |
14 | ## 1.1
15 | - [x] Support for JavaScript formatting in .vue files
16 |
17 | ## 1.0
18 |
19 | - [x] Initial release
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2016 Mads Kristensen
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
--------------------------------------------------------------------------------
/src/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 | using VuePack;
4 |
5 | [assembly: AssemblyTitle(Vsix.Name)]
6 | [assembly: AssemblyDescription(Vsix.Description)]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany(Vsix.Author)]
9 | [assembly: AssemblyProduct(Vsix.Name)]
10 | [assembly: AssemblyCopyright(Vsix.Author)]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: AssemblyVersion(Vsix.Version)]
17 | [assembly: AssemblyFileVersion(Vsix.Version)]
18 |
--------------------------------------------------------------------------------
/src/HTML/ContentType/VueContentTypeDefinition.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel.Composition;
2 | using Microsoft.VisualStudio.Utilities;
3 |
4 | namespace VuePack
5 | {
6 | public class VueContentTypeDefinition
7 | {
8 | public const string VueContentType = "htmlx";
9 | private const string VueFileExtension = ".vue";
10 |
11 | [Export(typeof(FileExtensionToContentTypeDefinition))]
12 | [ContentType(VueContentType)]
13 | [FileExtension(VueFileExtension)]
14 | public FileExtensionToContentTypeDefinition VueFileExtensionDefinition { get; set; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | image: Visual Studio 2017
2 |
3 | install:
4 | - ps: (new-object Net.WebClient).DownloadString("https://raw.github.com/madskristensen/ExtensionScripts/master/AppVeyor/vsix.ps1") | iex
5 |
6 | before_build:
7 | - ps: Vsix-IncrementVsixVersion | Vsix-UpdateBuildVersion
8 | - ps: Vsix-TokenReplacement src\source.extension.cs 'Version = "([0-9\\.]+)"' 'Version = "{version}"'
9 |
10 | build_script:
11 | - nuget restore -Verbosity quiet
12 | - msbuild /p:configuration=Release /p:DeployExtension=false /p:ZipPackageCompressionLevel=normal /v:m
13 |
14 | after_test:
15 | - ps: Vsix-PushArtifacts | Vsix-PublishToGallery
--------------------------------------------------------------------------------
/src/JavaScript/Snippets/VuePack/vue.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 | vue
4 | vue
5 | vue instance
6 | Mads Kristensen
7 |
8 | Expansion
9 |
10 |
11 |
12 |
13 |
14 | selector
15 | #app
16 |
17 |
18 |
19 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/JavaScript/Snippets/VuePack/vuef.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 | vuef
4 | vuef
5 | vue filter
6 | Mads Kristensen
7 |
8 | Expansion
9 |
10 |
11 |
12 |
13 |
14 | name
15 | my-filter
16 |
17 |
18 |
19 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/source.extension.cs:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | //
3 | // This file was generated by Extensibility Tools v1.10.188
4 | //
5 | // ------------------------------------------------------------------------------
6 | namespace VuePack
7 | {
8 | static class Vsix
9 | {
10 | public const string Id = "4163aa08-9878-4b1c-a1ee-58ab67f7db5b";
11 | public const string Name = "Vue.js Pack 2017";
12 | public const string Description = @"Contains HTML Intellisense and code snippets for the Vue.js JavaScript library";
13 | public const string Language = "en-US";
14 | public const string Version = "1.1";
15 | public const string Author = "Mads Kristensen";
16 | public const string Tags = "vue.js, snippets, javascript";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Images.imagemanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/JavaScript/Snippets/VuePack/vued.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 | vued
4 | vued
5 | vue directive
6 | Mads Kristensen
7 |
8 | Expansion
9 |
10 |
11 |
12 |
13 |
14 | name
15 | my-directive
16 |
17 |
18 |
19 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/VSPackage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Threading;
4 | using EnvDTE;
5 | using EnvDTE80;
6 | using Microsoft.VisualStudio.Shell;
7 | using Microsoft.VisualStudio.Shell.Interop;
8 |
9 | namespace VuePack
10 | {
11 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
12 | [InstalledProductRegistration("#110", "#112", Vsix.Version, IconResourceID = 400)]
13 | [ProvideAutoLoad(UIContextGuids80.SolutionHasSingleProject, PackageAutoLoadFlags.BackgroundLoad)]
14 | [ProvideAutoLoad(UIContextGuids80.SolutionHasMultipleProjects, PackageAutoLoadFlags.BackgroundLoad)]
15 | [Guid("b2295a37-9de5-4be8-8a5e-7bbb7ecdc3ca")]
16 | [ProvideMenuResource("Menus.ctmenu", 1)]
17 | public sealed class VuePackage : AsyncPackage
18 | {
19 | private SolutionEvents _events;
20 |
21 | protected override async System.Threading.Tasks.Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
22 | {
23 | var dte = await GetServiceAsync(typeof(DTE)) as DTE2;
24 |
25 | _events = dte.Events.SolutionEvents;
26 | _events.AfterClosing += delegate { DirectivesCache.Clear(); };
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/HTML/Completion/ElementCompletion.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Microsoft.Html.Editor.Completion;
3 | using Microsoft.Html.Editor.Completion.Def;
4 | using Microsoft.VisualStudio.Utilities;
5 |
6 | namespace VuePack
7 | {
8 | [HtmlCompletionProvider(CompletionTypes.Children, "*")]
9 | [ContentType("htmlx")]
10 | class ElementCompletion : BaseCompletion
11 | {
12 | public override string CompletionType
13 | {
14 | get { return CompletionTypes.Children; }
15 | }
16 |
17 | public override IList GetEntries(HtmlCompletionContext context)
18 | {
19 | var list = new List
20 | {
21 | CreateItem("partial", " tags serve as outlets for registered partials. Partial contents are also compiled by Vue when inserted. The element itself will be replaced. It requires a name attribute to be provided.", context.Session),
22 | CreateItem("component", "Alternative syntax for invoking components. Primarily used for dynamic components with the \"is\" attribute", context.Session),
23 | CreateItem("render", "Used to render templates", context.Session),
24 | };
25 |
26 | return list;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/VuePack2017.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25123.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vue.js Pack", "src\VuePack.csproj", "{C692EEF9-4189-4E7B-B2D8-873552B4A15D}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D166EEB4-832B-46C1-867F-CB589787D6BF}"
9 | ProjectSection(SolutionItems) = preProject
10 | appveyor.yml = appveyor.yml
11 | CHANGELOG.md = CHANGELOG.md
12 | README.md = README.md
13 | EndProjectSection
14 | EndProject
15 | Global
16 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
17 | Debug|Any CPU = Debug|Any CPU
18 | Release|Any CPU = Release|Any CPU
19 | EndGlobalSection
20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
21 | {C692EEF9-4189-4E7B-B2D8-873552B4A15D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22 | {C692EEF9-4189-4E7B-B2D8-873552B4A15D}.Debug|Any CPU.Build.0 = Debug|Any CPU
23 | {C692EEF9-4189-4E7B-B2D8-873552B4A15D}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {C692EEF9-4189-4E7B-B2D8-873552B4A15D}.Release|Any CPU.Build.0 = Release|Any CPU
25 | EndGlobalSection
26 | GlobalSection(SolutionProperties) = preSolution
27 | HideSolutionNode = FALSE
28 | EndGlobalSection
29 | EndGlobal
30 |
--------------------------------------------------------------------------------
/src/HTML/Completion/ElementDirectiveCompletion.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Text.RegularExpressions;
3 | using Microsoft.Html.Editor.Completion;
4 | using Microsoft.Html.Editor.Completion.Def;
5 | using Microsoft.VisualStudio.Utilities;
6 |
7 | namespace VuePack
8 | {
9 | [HtmlCompletionProvider(CompletionTypes.Children, "*")]
10 | [ContentType("htmlx")]
11 | class ElementDirectiveCompletion : BaseCompletion
12 | {
13 | public override string CompletionType
14 | {
15 | get { return CompletionTypes.Children; }
16 | }
17 |
18 | public override IList GetEntries(HtmlCompletionContext context)
19 | {
20 | string text = context.Document.TextBuffer.CurrentSnapshot.GetText();
21 | var names = DirectivesCache.GetValues(DirectiveType.Element);
22 | var list = new List();
23 |
24 | foreach (Match match in DirectivesCache.ElementRegex.Matches(text))
25 | {
26 | var name = match.Groups["name"].Value;
27 | if (!names.Contains(name))
28 | names.Add(name);
29 | }
30 |
31 | foreach (string name in names)
32 | {
33 | var item = CreateItem(name, "Custom component/directive", context.Session);
34 | list.Add(item);
35 | }
36 |
37 | return list;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/HTML/Completion/AttributeDirectiveCompletion.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Text.RegularExpressions;
3 | using Microsoft.Html.Editor.Completion;
4 | using Microsoft.Html.Editor.Completion.Def;
5 | using Microsoft.VisualStudio.Utilities;
6 |
7 | namespace VuePack
8 | {
9 | [HtmlCompletionProvider(CompletionTypes.Attributes, "*")]
10 | [ContentType("htmlx")]
11 | class AttributeDirectiveCompletion : BaseCompletion
12 | {
13 | public override string CompletionType
14 | {
15 | get { return CompletionTypes.Attributes; }
16 | }
17 |
18 | public override IList GetEntries(HtmlCompletionContext context)
19 | {
20 | string text = context.Document.TextBuffer.CurrentSnapshot.GetText();
21 | var names = DirectivesCache.GetValues(DirectiveType.Attribute);
22 | var list = new List();
23 |
24 | foreach (Match match in DirectivesCache.AttributeRegex.Matches(text))
25 | {
26 | var name = match.Groups["name"].Value;
27 | if (!names.Contains(name))
28 | names.Add(name);
29 | }
30 |
31 | foreach (string name in names)
32 | {
33 | var item = CreateItem(name, "Custom directive", context.Session);
34 | list.Add(item);
35 | }
36 |
37 | return list;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Helpers/ProjectHelpers.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using EnvDTE;
4 |
5 | namespace VuePack
6 | {
7 | static class ProjectHelpers
8 | {
9 | public static string GetRootFolder(this Project project)
10 | {
11 | if (string.IsNullOrEmpty(project.FullName))
12 | return null;
13 |
14 | string fullPath;
15 |
16 | try
17 | {
18 | fullPath = project.Properties.Item("FullPath").Value as string;
19 | }
20 | catch (ArgumentException)
21 | {
22 | try
23 | {
24 | // MFC projects don't have FullPath, and there seems to be no way to query existence
25 | fullPath = project.Properties.Item("ProjectDirectory").Value as string;
26 | }
27 | catch (ArgumentException)
28 | {
29 | // Installer projects have a ProjectPath.
30 | fullPath = project.Properties.Item("ProjectPath").Value as string;
31 | }
32 | }
33 |
34 | if (string.IsNullOrEmpty(fullPath))
35 | return File.Exists(project.FullName) ? Path.GetDirectoryName(project.FullName) : null;
36 |
37 | if (Directory.Exists(fullPath))
38 | return fullPath;
39 |
40 | if (File.Exists(fullPath))
41 | return Path.GetDirectoryName(fullPath);
42 |
43 | return null;
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Vue.js Pack 2017
6 | Contains HTML Intellisense and code snippets for the Vue.js JavaScript library
7 | https://github.com/madskristensen/VuePack2017
8 | Resources\LICENSE
9 | https://github.com/madskristensen/VuePack2017/blob/master/CHANGELOG.md
10 | Resources\icon.png
11 | Resources\Preview.png
12 | vue.js, snippets, javascript
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/HTML/Completion/BaseCompletion.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Runtime.InteropServices;
4 | using System.Windows.Media;
5 | using System.Windows.Media.Imaging;
6 | using Microsoft.Html.Editor.Completion;
7 | using Microsoft.Html.Editor.Completion.Def;
8 | using Microsoft.VisualStudio.Imaging.Interop;
9 | using Microsoft.VisualStudio.Language.Intellisense;
10 | using Microsoft.VisualStudio.Shell;
11 | using Microsoft.VisualStudio.Shell.Interop;
12 |
13 | namespace VuePack
14 | {
15 | abstract class BaseCompletion : IHtmlCompletionListProvider
16 | {
17 | private static ImageSource _icon = GetImage(Images.VueFile, 16);
18 |
19 | public abstract string CompletionType { get; }
20 |
21 | public abstract IList GetEntries(HtmlCompletionContext context);
22 |
23 | public static BitmapSource GetImage(ImageMoniker moniker, int size)
24 | {
25 | ImageAttributes imageAttributes = new ImageAttributes
26 | {
27 | Flags = (uint)_ImageAttributesFlags.IAF_RequiredFlags,
28 | ImageType = (uint)_UIImageType.IT_Bitmap,
29 | Format = (uint)_UIDataFormat.DF_WPF,
30 | LogicalHeight = size,
31 | LogicalWidth = size,
32 | StructSize = Marshal.SizeOf(typeof(ImageAttributes))
33 | };
34 |
35 | var imageService = (IVsImageService2)Package.GetGlobalService(typeof(SVsImageService));
36 | var image = imageService.GetImage(moniker, imageAttributes);
37 |
38 | object data;
39 | image.get_Data(out data);
40 |
41 | if (data == null)
42 | return null;
43 |
44 | return data as BitmapSource;
45 | }
46 |
47 | protected HtmlCompletion CreateItem(string name, string description, ICompletionSession session)
48 | {
49 | string desc = description + Environment.NewLine + Environment.NewLine + Vsix.Name;
50 | return new HtmlCompletion(name, name, desc, _icon, null, session);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/HTML/VueCreationListener.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.ComponentModel.Composition;
3 | using System.IO;
4 | using System.Threading.Tasks;
5 | using Microsoft.VisualStudio.Editor;
6 | using Microsoft.VisualStudio.Text;
7 | using Microsoft.VisualStudio.Text.Editor;
8 | using Microsoft.VisualStudio.TextManager.Interop;
9 | using Microsoft.VisualStudio.Utilities;
10 | using System;
11 |
12 | namespace VuePack
13 | {
14 | [Export(typeof(IVsTextViewCreationListener))]
15 | [ContentType(VueContentTypeDefinition.VueContentType)]
16 | [ContentType("javascript")]
17 | [TextViewRole(PredefinedTextViewRoles.PrimaryDocument)]
18 | class VueCreationListener : IVsTextViewCreationListener
19 | {
20 | [Import]
21 | public IVsEditorAdaptersFactoryService EditorAdaptersFactoryService { get; set; }
22 |
23 | [Import]
24 | public ITextDocumentFactoryService DocumentService { get; set; }
25 |
26 | private ITextDocument _document;
27 |
28 | public void VsTextViewCreated(IVsTextView textViewAdapter)
29 | {
30 | var textView = EditorAdaptersFactoryService.GetWpfTextView(textViewAdapter);
31 |
32 | // Both "Web Compiler" and "Bundler & Minifier" extensions add this property on their
33 | // generated output files. Generated output should be ignored from linting
34 | if (textView.Properties.TryGetProperty("generated", out bool generated) && generated)
35 | return;
36 |
37 | if (DocumentService.TryGetTextDocument(textView.TextDataModel.DocumentBuffer, out _document))
38 | {
39 | if (_document.FilePath.EndsWith(".vue", StringComparison.OrdinalIgnoreCase))
40 | _document.FileActionOccurred += DocumentSaved;
41 | }
42 | }
43 |
44 | private void DocumentSaved(object sender, TextDocumentFileActionEventArgs e)
45 | {
46 | if (e.FileActionType == FileActionTypes.ContentSavedToDisk)
47 | {
48 | Task.Run(() =>
49 | {
50 | DirectivesCache.ProcessFile(e.FilePath);
51 | });
52 | }
53 | }
54 |
55 | private static List GetFiles(string path, string pattern)
56 | {
57 | var files = new List();
58 |
59 | if (path.Contains("node_modules"))
60 | return files;
61 |
62 | try
63 | {
64 | files.AddRange(Directory.GetFiles(path, pattern, SearchOption.TopDirectoryOnly));
65 | foreach (var directory in Directory.GetDirectories(path))
66 | files.AddRange(GetFiles(directory, pattern));
67 | }
68 | catch { }
69 |
70 | return files;
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue Pack 2017
2 |
3 | [](https://ci.appveyor.com/project/madskristensen/vuepack2017)
4 |
5 | Download this extension from the [VS Marketplace](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.VuejsPack-18329)
6 | or get the [CI build](http://vsixgallery.com/extension/4163aa08-9878-4b1c-a1ee-58ab67f7db5b/).
7 |
8 | ---------------------------------------
9 |
10 | Contains HTML Intellisense and code snippets for the
11 | [Vue.js](http://vuejs.org)
12 | JavaScript library
13 |
14 | See the [changelog](CHANGELOG.md) for changes and roadmap.
15 |
16 | ## Features
17 |
18 | - **.vue** files are mapped to open in the HTML editor
19 | - HTML Intellisense for built-in directives
20 | - HTML Intellisense for custom directives and components
21 | - File icon for **.vue** files
22 | - JavaScript snippets
23 |
24 | ### Directives Intellisense
25 | Built in directives are shown in Intellisense to make it easier
26 | to write an to avoid typos.
27 |
28 | Any directive or component defined in any .vue or .js file in
29 | the project will be show up in Intellisense.
30 |
31 | #### Built in directives
32 | 
33 |
34 | #### Special elements
35 | 
36 |
37 | #### Custom components/elementDirectives
38 | 
39 |
40 | #### Custom directives
41 | 
42 |
43 | ### File icon
44 | Solution Explorer correctly displays a file icon for .vue
45 | files.
46 |
47 | 
48 |
49 | ### JavaScript snippets
50 | A few handy snippets are available to speed up boilerplating
51 | of vew models, filters and directives.
52 |
53 | #### vue (view model)
54 |
55 | ```javascript
56 | var vm = new Vue({
57 |
58 | el: "#app"
59 |
60 | })
61 | ```
62 |
63 | #### vued (directive)
64 |
65 | ```javascript
66 | Vue.directive('my-directive', {
67 |
68 | bind: function () {
69 | // content
70 | },
71 |
72 | update: function (value) {
73 | // content
74 | },
75 |
76 | unbind: function () {
77 | // content
78 | }
79 | })
80 | ```
81 |
82 | #### vuef (filter)
83 |
84 | ```javascript
85 | Vue.filter('my-filter', function (value) {
86 |
87 | $end$
88 |
89 | })
90 | ```
91 |
92 | Here's what it looks like in the Code Snippets Manager.
93 |
94 | 
95 |
96 | ## Contribute
97 | Check out the [contribution guidelines](CONTRIBUTING.md)
98 | if you want to contribute to this project.
99 |
100 | For cloning and building this project yourself, make sure
101 | to install the
102 | [Extensibility Tools 2015](https://visualstudiogallery.msdn.microsoft.com/ab39a092-1343-46e2-b0f1-6a3f91155aa6)
103 | extension for Visual Studio which enables some features
104 | used by this project.
105 |
106 | ## License
107 | [Apache 2.0](LICENSE)
--------------------------------------------------------------------------------
/src/HTML/Completion/AttributeCompletion.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Microsoft.Html.Editor.Completion;
3 | using Microsoft.Html.Editor.Completion.Def;
4 | using Microsoft.VisualStudio.Utilities;
5 |
6 | namespace VuePack
7 | {
8 | [HtmlCompletionProvider(CompletionTypes.Attributes, "*")]
9 | [ContentType("htmlx")]
10 | class AttributeCompletion : BaseCompletion
11 | {
12 | Dictionary _attributes = new Dictionary
13 | {
14 | { "track-by", "" },
15 | { "v-attr", "Updates the element’s given attribute (indicated by the argument)." },
16 | { "v-class", "If no argument is provided, it will add the binding’s value to the element’s classList, and update the class as the value changes." },
17 | { "v-cloak", "This property remains on the element until the associated ViewModel finishes compilation. Combined with CSS rules such as [v-cloak] { display: none }, this directive can be used to hide un-compiled mustache bindings until the ViewModel is ready." },
18 | { "v-el", "Register a reference to a DOM element on its owner Vue instance for easier access. e.g.
will be accessible as vm.$$.hi." },
19 | { "v-for", "We can use the v-for directive to render a list of items based on an Array. The v-for directive requires a special syntax in the form of item in items, where items is the source data Array and item is an alias for the Array element being iterated on" },
20 | { "v-html", "Updates the element’s innerHTML." },
21 | { "v-if", "Conditionally insert / remove the element based on the truthy-ness of the binding value. If the element is a element, its content will be extracted as the conditional block." },
22 | { "v-model", "Create a two-way binding on a form input element. Data is synced on every input event by default." },
23 | { "v-on", "Attaches an event listener to the element. The event type is denoted by the argument. It is also the only directive that can be used with the key filter." },
24 | { "v-pre", "Skip compilation for this element and all its children. Skipping large numbers of nodes with no directives on them can speed up compilation." },
25 | { "v-ref", "Register a reference to a child component on its parent for easier access. Only respected when used on a component or with v-repeat. The component instance will be accessible on its parent’s $ object" },
26 | { "v-repeat", "Create a child ViewModel for every item in the binding Array or Object. If the value is a whole Number then that many child ViewModels are created. These child ViewModels will be automatically created / destroyed when mutating methods, e.g. push(), are called on the Array or Object, or the number is increased or decreased." },
27 | { "v-show", "Set the element’s display to none or its original value, depending on the truthy-ness of the binding's value." },
28 | { "v-style", "Apply inline CSS styles to the element. When there is no argument, the bound value can either be a String or an Object." },
29 | { "v-text", "Updates the element's textContent. Internally, {{ Mustache }} interpolations are also compiled as a v-text directive on a textNode." },
30 | { "v-transition", "Notify Vue.js to apply transitions to this element. The transition classes are applied when certain transition-triggering directives modify the element, or when the Vue instance’s DOM manipulation methods are called." },
31 | };
32 |
33 | public override string CompletionType
34 | {
35 | get { return CompletionTypes.Attributes; }
36 | }
37 |
38 | public override IList GetEntries(HtmlCompletionContext context)
39 | {
40 | var list = new List();
41 |
42 | foreach (var name in _attributes.Keys)
43 | {
44 | list.Add(CreateItem(name, _attributes[name], context.Session));
45 | }
46 |
47 | return list;
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/src/HTML/DirectivesCache.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Concurrent;
3 | using System.Collections.Generic;
4 | using System.ComponentModel.Composition;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text.RegularExpressions;
8 | using EnvDTE;
9 | using EnvDTE80;
10 | using Microsoft.VisualStudio.Editor;
11 | using Microsoft.VisualStudio.Shell;
12 | using Microsoft.VisualStudio.Text;
13 | using Microsoft.VisualStudio.Text.Editor;
14 | using Microsoft.VisualStudio.TextManager.Interop;
15 | using Microsoft.VisualStudio.Utilities;
16 |
17 | namespace VuePack
18 | {
19 | [Export(typeof(IVsTextViewCreationListener))]
20 | [ContentType("htmlx")]
21 | [TextViewRole(PredefinedTextViewRoles.PrimaryDocument)]
22 | class DirectivesCache : IVsTextViewCreationListener
23 | {
24 | private static bool _hasRun, _isProcessing;
25 | private static ConcurrentDictionary _elements = new ConcurrentDictionary();
26 | private static ConcurrentDictionary _attributes = new ConcurrentDictionary();
27 |
28 | [Import]
29 | public IVsEditorAdaptersFactoryService EditorAdaptersFactoryService { get; set; }
30 |
31 | [Import]
32 | public ITextDocumentFactoryService TextDocumentFactoryService { get; set; }
33 |
34 | public static Regex ElementRegex { get; } = new Regex("Vue\\.(elementDirective|component)\\(('|\")(?[^'\"]+)\\2", RegexOptions.Compiled);
35 |
36 | public static Regex AttributeRegex { get; } = new Regex("Vue\\.(directive)\\(('|\")(?[^'\"]+)\\2", RegexOptions.Compiled);
37 |
38 | public void VsTextViewCreated(IVsTextView textViewAdapter)
39 | {
40 | if (_hasRun || _isProcessing)
41 | return;
42 |
43 | var textView = EditorAdaptersFactoryService.GetWpfTextView(textViewAdapter);
44 |
45 | ITextDocument doc;
46 |
47 | if (TextDocumentFactoryService.TryGetTextDocument(textView.TextDataModel.DocumentBuffer, out doc))
48 | {
49 | if (Path.IsPathRooted(doc.FilePath) && File.Exists(doc.FilePath))
50 | {
51 | _isProcessing = true;
52 | var dte = (DTE2)Package.GetGlobalService(typeof(DTE));
53 | var item = dte.Solution?.FindProjectItem(doc.FilePath);
54 |
55 | System.Threading.Tasks.Task.Run(() =>
56 | {
57 | EnsureInitialized(item);
58 | _hasRun = _isProcessing = false;
59 | });
60 | }
61 | }
62 | }
63 |
64 | public static void Clear()
65 | {
66 | _hasRun = false;
67 | _elements.Clear();
68 | _attributes.Clear();
69 | }
70 |
71 | private void EnsureInitialized(ProjectItem item)
72 | {
73 | if (item == null || item.ContainingProject == null)
74 | return;
75 |
76 | try
77 | {
78 | string folder = item.ContainingProject.GetRootFolder();
79 |
80 | var vueFiles = GetFiles(folder, "*.vue");
81 | var jsFiles = GetFiles(folder, "*.js");
82 | var allFiles = vueFiles
83 | .Union(jsFiles)
84 | .Where(f => !f.Contains(".min.") && !f.EndsWith(".intellisense.js") && !f.EndsWith("-vsdoc.js"));
85 |
86 | ProcessFile(allFiles.ToArray());
87 | }
88 | catch (Exception)
89 | {
90 | // TODO: Add logging
91 | }
92 | }
93 |
94 | public static void ProcessFile(params string[] files)
95 | {
96 | foreach (string file in files)
97 | {
98 | string content = File.ReadAllText(file);
99 |
100 | // Elements
101 | var elementMatches = ElementRegex.Matches(content).Cast();
102 | _elements[file] = elementMatches.Select(m => m.Groups["name"].Value).ToArray();
103 |
104 | // Attributes
105 | var attributeMatches = AttributeRegex.Matches(content).Cast();
106 | _attributes[file] = attributeMatches.Select(m => m.Groups["name"].Value).ToArray();
107 | }
108 | }
109 |
110 | public static List GetValues(DirectiveType type)
111 | {
112 | var names = new List();
113 | var cache = type == DirectiveType.Element ? _elements : _attributes;
114 |
115 | foreach (var file in cache.Keys)
116 | foreach (var attr in cache[file])
117 | {
118 | if (!names.Contains(attr))
119 | names.Add(attr);
120 | }
121 |
122 | return names;
123 | }
124 |
125 | private static List GetFiles(string path, string pattern)
126 | {
127 | var files = new List();
128 |
129 | if (path.Contains("node_modules"))
130 | return files;
131 |
132 | try
133 | {
134 | files.AddRange(Directory.GetFiles(path, pattern, SearchOption.TopDirectoryOnly));
135 | foreach (var directory in Directory.GetDirectories(path))
136 | files.AddRange(GetFiles(directory, pattern));
137 | }
138 | catch { }
139 |
140 | return files;
141 | }
142 | }
143 |
144 | public enum DirectiveType
145 | {
146 | Element,
147 | Attribute
148 | }
149 | }
150 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | Looking to contribute something? **Here's how you can help.**
4 |
5 | Please take a moment to review this document in order to make the contribution
6 | process easy and effective for everyone involved.
7 |
8 | Following these guidelines helps to communicate that you respect the time of
9 | the developers managing and developing this open source project. In return,
10 | they should reciprocate that respect in addressing your issue or assessing
11 | patches and features.
12 |
13 |
14 | ## Using the issue tracker
15 |
16 | The issue tracker is the preferred channel for [bug reports](#bug-reports),
17 | [features requests](#feature-requests) and
18 | [submitting pull requests](#pull-requests), but please respect the
19 | following restrictions:
20 |
21 | * Please **do not** use the issue tracker for personal support requests. Stack
22 | Overflow is a better place to get help.
23 |
24 | * Please **do not** derail or troll issues. Keep the discussion on topic and
25 | respect the opinions of others.
26 |
27 | * Please **do not** open issues or pull requests which *belongs to* third party
28 | components.
29 |
30 |
31 | ## Bug reports
32 |
33 | A bug is a _demonstrable problem_ that is caused by the code in the repository.
34 | Good bug reports are extremely helpful, so thanks!
35 |
36 | Guidelines for bug reports:
37 |
38 | 1. **Use the GitHub issue search** — check if the issue has already been
39 | reported.
40 |
41 | 2. **Check if the issue has been fixed** — try to reproduce it using the
42 | latest `master` or development branch in the repository.
43 |
44 | 3. **Isolate the problem** — ideally create an
45 | [SSCCE](http://www.sscce.org/) and a live example.
46 | Uploading the project on cloud storage (OneDrive, DropBox, et el.)
47 | or creating a sample GitHub repository is also helpful.
48 |
49 |
50 | A good bug report shouldn't leave others needing to chase you up for more
51 | information. Please try to be as detailed as possible in your report. What is
52 | your environment? What steps will reproduce the issue? What browser(s) and OS
53 | experience the problem? Do other browsers show the bug differently? What
54 | would you expect to be the outcome? All these details will help people to fix
55 | any potential bugs.
56 |
57 | Example:
58 |
59 | > Short and descriptive example bug report title
60 | >
61 | > A summary of the issue and the Visual Studio, browser, OS environments
62 | > in which it occurs. If suitable, include the steps required to reproduce the bug.
63 | >
64 | > 1. This is the first step
65 | > 2. This is the second step
66 | > 3. Further steps, etc.
67 | >
68 | > `` - a link to the project/file uploaded on cloud storage or other publicly accessible medium.
69 | >
70 | > Any other information you want to share that is relevant to the issue being
71 | > reported. This might include the lines of code that you have identified as
72 | > causing the bug, and potential solutions (and your opinions on their
73 | > merits).
74 |
75 |
76 | ## Feature requests
77 |
78 | Feature requests are welcome. But take a moment to find out whether your idea
79 | fits with the scope and aims of the project. It's up to *you* to make a strong
80 | case to convince the project's developers of the merits of this feature. Please
81 | provide as much detail and context as possible.
82 |
83 |
84 | ## Pull requests
85 |
86 | Good pull requests, patches, improvements and new features are a fantastic
87 | help. They should remain focused in scope and avoid containing unrelated
88 | commits.
89 |
90 | **Please ask first** before embarking on any significant pull request (e.g.
91 | implementing features, refactoring code, porting to a different language),
92 | otherwise you risk spending a lot of time working on something that the
93 | project's developers might not want to merge into the project.
94 |
95 | Please adhere to the [coding guidelines](#code-guidelines) used throughout the
96 | project (indentation, accurate comments, etc.) and any other requirements
97 | (such as test coverage).
98 |
99 | Adhering to the following process is the best way to get your work
100 | included in the project:
101 |
102 | 1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
103 | and configure the remotes:
104 |
105 | ```bash
106 | # Clone your fork of the repo into the current directory
107 | git clone https://github.com//.git
108 | # Navigate to the newly cloned directory
109 | cd
110 | # Assign the original repo to a remote called "upstream"
111 | git remote add upstream https://github.com/madskristensen/.git
112 | ```
113 |
114 | 2. If you cloned a while ago, get the latest changes from upstream:
115 |
116 | ```bash
117 | git checkout master
118 | git pull upstream master
119 | ```
120 |
121 | 3. Create a new topic branch (off the main project development branch) to
122 | contain your feature, change, or fix:
123 |
124 | ```bash
125 | git checkout -b
126 | ```
127 |
128 | 4. Commit your changes in logical chunks. Please adhere to these [git commit
129 | message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
130 | or your code is unlikely be merged into the main project. Use Git's
131 | [interactive rebase](https://help.github.com/articles/interactive-rebase)
132 | feature to tidy up your commits before making them public. Also, prepend name of the feature
133 | to the commit message. For instance: "SCSS: Fixes compiler results for IFileListener.\nFixes `#123`"
134 |
135 | 5. Locally merge (or rebase) the upstream development branch into your topic branch:
136 |
137 | ```bash
138 | git pull [--rebase] upstream master
139 | ```
140 |
141 | 6. Push your topic branch up to your fork:
142 |
143 | ```bash
144 | git push origin
145 | ```
146 |
147 | 7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
148 | with a clear title and description against the `master` branch.
149 |
150 |
151 | ## Code guidelines
152 |
153 | - Always use proper indentation.
154 | - In Visual Studio under `Tools > Options > Text Editor > C# > Advanced`, make sure
155 | `Place 'System' directives first when sorting usings` option is enabled (checked).
156 | - Before committing, organize usings for each updated C# source file. Either you can
157 | right-click editor and select `Organize Usings > Remove and sort` OR use extension
158 | like [BatchFormat](http://visualstudiogallery.msdn.microsoft.com/a7f75c34-82b4-4357-9c66-c18e32b9393e).
159 | - Before committing, run Code Analysis in `Debug` configuration and follow the guidelines
160 | to fix CA issues. Code Analysis commits can be made separately.
161 |
--------------------------------------------------------------------------------
/src/source.extension.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | Vue.js Pack 2017
122 |
123 |
124 | Contains HTML Intellisense and code snippets for the Vue.js JavaScript library
125 |
126 |
127 |
128 | source.extension.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
129 |
130 |
--------------------------------------------------------------------------------
/src/VuePack.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(VisualStudioVersion)
5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
6 |
7 | true
8 | Program
9 | $(DevEnvDir)\devenv.exe
10 | /rootsuffix Exp
11 |
12 |
13 |
14 | Debug
15 | AnyCPU
16 | 2.0
17 | {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
18 | {C692EEF9-4189-4E7B-B2D8-873552B4A15D}
19 | Library
20 | Properties
21 | VuePack
22 | VuePack
23 | v4.6
24 | true
25 | true
26 | true
27 | false
28 | true
29 | false
30 |
31 |
32 | true
33 | full
34 | false
35 | bin\Debug\
36 | DEBUG;TRACE
37 | prompt
38 | 4
39 |
40 |
41 | pdbonly
42 | true
43 | bin\Release\
44 | TRACE
45 | prompt
46 | 4
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | Images.imagemanifest
60 |
61 |
62 |
63 | source.extension.vsixmanifest
64 |
65 |
66 |
67 |
68 |
69 |
70 | true
71 |
72 |
73 | Resources\LICENSE
74 | true
75 |
76 |
77 | true
78 |
79 |
80 | true
81 |
82 |
83 | true
84 |
85 |
86 |
87 | Designer
88 | VsixManifestGenerator
89 | source.extension.resx
90 |
91 |
92 |
93 |
94 | False
95 | False
96 |
97 |
98 | True
99 |
100 |
101 | False
102 | ..\lib\Microsoft.Html.Core.dll
103 | False
104 |
105 |
106 | False
107 | ..\lib\Microsoft.Html.Editor.dll
108 | False
109 |
110 |
111 | ..\packages\Microsoft.VisualStudio.CoreUtility.15.0.26201\lib\net45\Microsoft.VisualStudio.CoreUtility.dll
112 | True
113 | False
114 |
115 |
116 | ..\packages\Microsoft.VisualStudio.Editor.15.0.26201\lib\net45\Microsoft.VisualStudio.Editor.dll
117 | True
118 | False
119 |
120 |
121 | ..\packages\Microsoft.VisualStudio.Imaging.15.0.26201\lib\net45\Microsoft.VisualStudio.Imaging.dll
122 | True
123 | False
124 |
125 |
126 | True
127 | ..\packages\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.15.0.25726-Preview5\lib\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll
128 | True
129 |
130 |
131 | ..\packages\Microsoft.VisualStudio.Language.Intellisense.15.0.26201\lib\net45\Microsoft.VisualStudio.Language.Intellisense.dll
132 | True
133 | False
134 |
135 |
136 | ..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll
137 | True
138 | False
139 |
140 |
141 | ..\packages\Microsoft.VisualStudio.Shell.14.0.15.0.25414-Preview5\lib\Microsoft.VisualStudio.Shell.14.0.dll
142 | False
143 |
144 |
145 | ..\packages\Microsoft.VisualStudio.Shell.Framework.15.0.25726-Preview5\lib\net45\Microsoft.VisualStudio.Shell.Framework.dll
146 | True
147 | False
148 |
149 |
150 | ..\packages\Microsoft.VisualStudio.Shell.Immutable.10.0.15.0.25413-Preview5\lib\net40\Microsoft.VisualStudio.Shell.Immutable.10.0.dll
151 | True
152 | False
153 |
154 |
155 | ..\packages\Microsoft.VisualStudio.Shell.Immutable.11.0.15.0.25413-Preview5\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll
156 | True
157 | False
158 |
159 |
160 | ..\packages\Microsoft.VisualStudio.Shell.Immutable.12.0.15.0.25413-Preview5\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll
161 | True
162 | False
163 |
164 |
165 | ..\packages\Microsoft.VisualStudio.Shell.Immutable.14.0.15.0.25403-Preview5\lib\net45\Microsoft.VisualStudio.Shell.Immutable.14.0.dll
166 | True
167 | False
168 |
169 |
170 | ..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6071\lib\Microsoft.VisualStudio.Shell.Interop.dll
171 | True
172 | False
173 |
174 |
175 | True
176 | ..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30319\lib\Microsoft.VisualStudio.Shell.Interop.10.0.dll
177 | True
178 |
179 |
180 | True
181 | ..\packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61030\lib\Microsoft.VisualStudio.Shell.Interop.11.0.dll
182 | True
183 |
184 |
185 | True
186 | ..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30110\lib\Microsoft.VisualStudio.Shell.Interop.12.0.dll
187 | True
188 |
189 |
190 | True
191 | ..\packages\Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime.15.0.25726-Preview5\lib\Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime.dll
192 | True
193 |
194 |
195 | ..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.Shell.Interop.8.0.dll
196 | True
197 | False
198 |
199 |
200 | ..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll
201 | True
202 | False
203 |
204 |
205 | ..\packages\Microsoft.VisualStudio.Text.Data.15.0.26201\lib\net45\Microsoft.VisualStudio.Text.Data.dll
206 | True
207 | False
208 |
209 |
210 | ..\packages\Microsoft.VisualStudio.Text.Logic.15.0.26201\lib\net45\Microsoft.VisualStudio.Text.Logic.dll
211 | True
212 | False
213 |
214 |
215 | ..\packages\Microsoft.VisualStudio.Text.UI.15.0.26201\lib\net45\Microsoft.VisualStudio.Text.UI.dll
216 | True
217 | False
218 |
219 |
220 | ..\packages\Microsoft.VisualStudio.Text.UI.Wpf.15.0.26201\lib\net45\Microsoft.VisualStudio.Text.UI.Wpf.dll
221 | True
222 | False
223 |
224 |
225 | ..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll
226 | True
227 | False
228 |
229 |
230 | ..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll
231 | True
232 | False
233 |
234 |
235 | ..\packages\Microsoft.VisualStudio.Threading.15.0.240\lib\net45\Microsoft.VisualStudio.Threading.dll
236 | True
237 | False
238 |
239 |
240 | ..\packages\Microsoft.VisualStudio.Utilities.15.0.26201\lib\net45\Microsoft.VisualStudio.Utilities.dll
241 | True
242 | False
243 |
244 |
245 | ..\packages\Microsoft.VisualStudio.Validation.15.0.82\lib\net45\Microsoft.VisualStudio.Validation.dll
246 | True
247 | False
248 |
249 |
250 | False
251 | ..\lib\Microsoft.Web.Editor.dll
252 | False
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 | True
262 | True
263 | source.extension.vsixmanifest
264 | true
265 | VSPackage
266 |
267 |
268 |
269 |
270 | true
271 |
272 |
273 | true
274 |
275 |
276 | true
277 |
278 |
279 | true
280 |
281 |
282 | source.extension.vsixmanifest
283 |
284 |
285 |
286 |
287 |
288 |
295 |
--------------------------------------------------------------------------------