{"componentChunkName":"component---src-templates-blog-post-template-js","path":"/2016/12/03/first-vscode-extension/","result":{"data":{"mdx":{"id":"6e98a2f2-a24c-5d1d-81be-9f85080d98f7","frontmatter":{"title":"My first Microsoft Visual Studio Code [VSCode] extension","date":"2016 December 3rd","cover":null},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"date\": \"2016-12-03T00:00:00.000Z\",\n  \"title\": \"My first Microsoft Visual Studio Code [VSCode] extension\",\n  \"tags\": [\"information\", \"vscode\", \"extension\"],\n  \"published\": true\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I\\u2019m a published developer! \", \"[sort of]\", \" Well that was a bit painful, well\\nnot actually I mean from the documentation I feel I was a bit mislead.\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"375px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/50f58b39bdbe05c6e32a31e989f12802/5ff7e/visual-studio-marketplace.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"63.46666666666667%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/svg+xml,%3csvg%20xmlns=\\\\'http://www.w3.org/2000/svg\\\\'%20width=\\\\'400\\\\'%20height=\\\\'254\\\\'%3e%3cpath%20d=\\\\'M0%2042v42h401V0H0v42m58-29c-3%203-4%203-5%201-3-2-4-1-4%204s0%206%204%204c1-2%202-2%205%201%202%203%203%203%205%203%203-1%203-1%203-8-1-9-3-11-8-5m290%2044l4%209%203-5%202-4v4c0%205%202%206%205%204h4c1-2%203-2%205%200s2%200%200-4c-2-6-3-6-5-1l-2%205v-3l-2-5-4-1c-3%200-3%200-4%203s-3%204-3%202-3-6-3-4m-34%2072l-1%203c0%203%200%204-3%203-6-1-9%208-5%2012%202%202%205%203%207%201h2c2%202%203%200%203-10%200-9-1-11-3-9m-77%201c-2%202%205%2019%207%2019s8-15%208-19c0-3-3%200-5%207-3%208-3%208-5%200-2-6-4-9-5-7m21%200l-3%204c0%203%203%206%205%206l2%202c3%203%201%205-4%205-3-1-4%200-1%201%208%204%2014-5%206-10-6-3-6-5-1-5%204%200%205-2%202-3h-6m17%201c-11%205-5%2021%207%2018%203-1%203-3%200-2-5%201-9-3-9-8%200-4%203-7%208-7%203%201%204-1%201-2s-3-1-7%201m67-1c0%204%206%2019%208%2019s9-16%208-19c-1-2-3%200-5%207l-3%207-3-7c-2-6-5-10-5-7m20%200l-1%2010v9h4c7%200%2012-5%207-9v-9c-2-1-9-2-10-1m21%200l-7%2019%204-3%202-2h4c2%200%203%201%204%203%200%202%203%203%203%201%200-3-6-18-8-19l-2%201m-94%207c-5%204-2%2012%205%2012%203%200%206-3%206-7%200-6-6-9-11-5m33%200c-4%204-1%2012%205%2012l4-2h-2c-2%200-3%200-4-2-3-2-2-3%204-3%204%200%204%200%203-2-1-5-6-7-10-3m-154%2018l-1%205-2%207-3%2012a109%20109%200%2000-7%2028c-1%201%200%202%201%202%202%201%202%200%202-2l1-4%203-8c3-9%202-9%209-10%206%200%206%200%208%203l2%205%202%204%201%205c0%203%202%207%204%207%202-1%202%200%200%201v2h3v-4l-2-3-1-3c-3-6-5-16-4-17%202-1%200-3-2-3s-2%200-2-2c1-1-1-6-3-8v-1l1-1-6-14-1-3-1-2c-2%200-2%201-2%204m-54%203v11c3%2028%203%2032%201%2039%200%203%200%203%203%203%209%201%2013%200%2014-1h3c3%200%207-3%208-5l1-1%202-2%201-5c0-5-5-13-10-14-5%200-6-2-3-5%206-8%204-18-3-20h-17m4%203v21l5-1%204-2%201-1c2%200%207-8%207-10%200-5-4-8-11-8l-6%201m50%203l-2%209-1%207-1%203c-1%201-1%201%203%201l6-1c4%200%204-1%200-13l-2-9c0-3-2%200-3%203m-103%205l3%207%203%208%202%204%202%205%202%203%202%204c2%207%209%2012%209%207s0-5%202-6l5-9%206-10c5-10%207-16%204-16l-5%207a134%20134%200%2001-12%2022c-3%204-5%206-5%204l-7-15-2-4-1-2-1-2-1-2-1-3c0-4-1-6-3-6s-2%200-2%204m319%201l-2%203v2c1%201%201%201-1%201-3%200-3%200-3%203%200%202%200%202%208%202%207%200%207%200%207-2s-1-3-2-3c-2%200-3%200-2-1l-1-2-1-2-1-3-2%202m-266%2016l1%2012c0%208%201%208%203%208l1%202c0%202%201%202%203%200l3-1h1l3-1c7%200%2014-11%209-14l-5-4c-2-2-9-4-13-3l-3-1c-2-2-3-1-3%202\\\\'%20fill=\\\\'%23d3d3d3\\\\'%20fill-rule=\\\\'evenodd\\\\'/%3e%3c/svg%3e')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"a\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/50f58b39bdbe05c6e32a31e989f12802/60a22/visual-studio-marketplace.webp 160w\", \"/static/50f58b39bdbe05c6e32a31e989f12802/4c812/visual-studio-marketplace.webp 320w\", \"/static/50f58b39bdbe05c6e32a31e989f12802/f3a60/visual-studio-marketplace.webp 375w\"],\n    \"sizes\": \"(max-width: 375px) 100vw, 375px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/50f58b39bdbe05c6e32a31e989f12802/69538/visual-studio-marketplace.png 160w\", \"/static/50f58b39bdbe05c6e32a31e989f12802/72799/visual-studio-marketplace.png 320w\", \"/static/50f58b39bdbe05c6e32a31e989f12802/5ff7e/visual-studio-marketplace.png 375w\"],\n    \"sizes\": \"(max-width: 375px) 100vw, 375px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/50f58b39bdbe05c6e32a31e989f12802/5ff7e/visual-studio-marketplace.png\",\n    \"alt\": \"market-place-image\",\n    \"title\": \"market-place-image\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"So for those of you that know what I do for a living I\\u2019m primarily an\\nAnalyst Developer with a skill set of VBA and SQL which has put me in\\ngood stead for the last 10+ years. I\\u2019m currently \\u2018up-skilling\\u2019 myself\\non more general programming languages, but enough of that! I basically\\nwanted to use \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://code.visualstudio.com/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"VSCode\"), \" with VBA which is fine as it\\u2019s just\\ntext files but I wanted some of the shexy stuff that VSCode comes\\nwith.\"), mdx(\"p\", null, \"I\\u2019m not going to go into how awesome (I think) VSCode is here but I\\nwill mention that for the purpose of me wanting to use (or at least\\nsee syntax highlighting) I found this extension for\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://marketplace.visualstudio.com/items?itemName=luggage66.VBScript\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"VBScript\"), \" which was neat but didn\\u2019t give me any\\nintellisense for even the most straight forward stuff like to create a\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Sub\"), \" or \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Function\"), \".\"), mdx(\"p\", null, \"So that got me playing around with making my own \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://code.visualstudio.com/Docs/customization/userdefinedsnippets\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"snippets\"), \"\\nand I found that after a while I had quite a lot of them so I decided\\nto put them on the VSCode market place.\"), mdx(\"p\", null, \"So, what I found is that Microsoft really want you to make VSCode\\nextensions and give you all the tools you need to do so.\"), mdx(\"p\", null, \"I found guides \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://code.visualstudio.com/docs/extensions/overview\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"here\"), \", \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://code.visualstudio.com/docs/extensions/example-hello-world\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"here\"), \" and \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://code.visualstudio.com/docs/extensions/testing-extensions\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"here\"), \" all\\nof which have you using \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://yeoman.io/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"Yeoman\"), \" by installing via\\nnpm, now I\\u2019ve never heard of Yeoman before trying to do this so I\\ndon\\u2019t have an opinion on that apart from to say it was a bit of a\\nballache to get any of it up and running. I tried installing it on\\nboth my home machine and a Cloud9 machine several times over with no\\nsuccess.\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"640px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/0d720ffedb48cce898538fc5510ccb14/5819f/yeoman-err.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"35.02879078694818%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/svg+xml,%3csvg%20xmlns=\\\\'http://www.w3.org/2000/svg\\\\'%20width=\\\\'400\\\\'%20height=\\\\'140\\\\'%3e%3cpath%20d=\\\\'M0%2070v70h401V0H0v70m0%201v70l1-65V12h2c2%200%202%200%201-1l-2-1%202-1V8L3%207c3%200%202-2%200-2L1%203C0%202%200%2032%200%2071\\\\'%20fill=\\\\'%23d3d3d3\\\\'%20fill-rule=\\\\'evenodd\\\\'/%3e%3c/svg%3e')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"a\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/0d720ffedb48cce898538fc5510ccb14/60a22/yeoman-err.webp 160w\", \"/static/0d720ffedb48cce898538fc5510ccb14/4c812/yeoman-err.webp 320w\", \"/static/0d720ffedb48cce898538fc5510ccb14/0ba47/yeoman-err.webp 640w\", \"/static/0d720ffedb48cce898538fc5510ccb14/e46b2/yeoman-err.webp 960w\", \"/static/0d720ffedb48cce898538fc5510ccb14/20e4c/yeoman-err.webp 1042w\"],\n    \"sizes\": \"(max-width: 640px) 100vw, 640px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/0d720ffedb48cce898538fc5510ccb14/69538/yeoman-err.png 160w\", \"/static/0d720ffedb48cce898538fc5510ccb14/72799/yeoman-err.png 320w\", \"/static/0d720ffedb48cce898538fc5510ccb14/6af66/yeoman-err.png 640w\", \"/static/0d720ffedb48cce898538fc5510ccb14/d9199/yeoman-err.png 960w\", \"/static/0d720ffedb48cce898538fc5510ccb14/5819f/yeoman-err.png 1042w\"],\n    \"sizes\": \"(max-width: 640px) 100vw, 640px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/0d720ffedb48cce898538fc5510ccb14/6af66/yeoman-err.png\",\n    \"alt\": \"YeomanErr\",\n    \"title\": \"YeomanErr\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Got tired after uninstalling and reinstalling several times at home\\nand on the cloud so moved on. I read\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://code.visualstudio.com/docs/tools/vscecli\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"this\"), \" guide about\\nsetting yourself up as a publisher on the Microsoft VSCode\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://marketplace.visualstudio.com/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"Marketplace\"), \" using with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"vsce\"), \"\\n(agin installed with npm) so after creating a Personal Access Token\\nand creating my publisher account I could then publish my extension.\\nBut this was the thing my extension is just the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"vbscrip.json\"), \" file on\\nmy hard drive.\"), mdx(\"h2\", {\n    \"id\": \"how-do-i-make-it-into-a-extension\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#how-do-i-make-it-into-a-extension\",\n    \"aria-label\": \"how do i make it into a extension permalink\",\n    \"className\": \"anchor-toc before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"How do I make it into a extension?\"), mdx(\"p\", null, \"After reading up on extension I thought that you needed to have your\\npackage \\u2018packaged\\u2019 with a \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".vsix\"), \" extension so looking at the links\\nearlier you need to install Yeoman (bugger!)\"), mdx(\"p\", null, \"I looked around at other snippets packages on GitHub and couldn\\u2019t\\nunderstand why I needed to have my snippets packaged up in this\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".vsix\"), \" file, all it was, was the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".json\"), \" file from my computer.\"), mdx(\"p\", null, \"So this is what I did, I copied the file structure from one of another\\nGitHub repositories that were just snippets, it basically consisted of\\ntwo folders and a \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"package.json\"), \" file. I replaced all the relevant\\nproperties in the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".json\"), \" file and created a\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/spences10/vba-snippets\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"GitHub\"), \" repository just\\nfor the sake of having all my lovingly crafted snippets kept safe.\"), mdx(\"p\", null, \"So it looked like I had no way to get this onto the Marketplace, I was\\npretty bummed but thought I\\u2019d just go though the process of publishing\\nan extension with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"vsce\"), \" by cd\\u2019ing to the folder the package was in\\nand going through the commands so I tried \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"vsce publish 1.0.0\")), mdx(\"p\", null, \"I was pretty surprised (and relieved) to see the output pictured.\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"640px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/4e408c5714752608e16b26532fdddb43/e548f/vsce-publish.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"17.641025641025642%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/svg+xml,%3csvg%20xmlns=\\\\'http://www.w3.org/2000/svg\\\\'%20width=\\\\'400\\\\'%20height=\\\\'71\\\\'%3e%3cpath%20d=\\\\'M0%2036v35h401V0H0v36m0%200l1%2031c0-3%201-5%203-6%202-2%202-2%201-3l-3-2c-1%201-1%200-1-2s1-3%203-3c3-1%203-2%200-4l-1-2%202-1-2-1c-2%201-2%200-2-1%200-4%201-7%203-7%203-1%202-4-1-5-4%200-3-7%201-8%203-1%202-4-1-5-4%200-3-7%201-8%203-1%202-4-1-5L1%202C0%201%200%2016%200%2036\\\\'%20fill=\\\\'%23d3d3d3\\\\'%20fill-rule=\\\\'evenodd\\\\'/%3e%3c/svg%3e')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"a\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/4e408c5714752608e16b26532fdddb43/60a22/vsce-publish.webp 160w\", \"/static/4e408c5714752608e16b26532fdddb43/4c812/vsce-publish.webp 320w\", \"/static/4e408c5714752608e16b26532fdddb43/0ba47/vsce-publish.webp 640w\", \"/static/4e408c5714752608e16b26532fdddb43/e46b2/vsce-publish.webp 960w\", \"/static/4e408c5714752608e16b26532fdddb43/1e975/vsce-publish.webp 975w\"],\n    \"sizes\": \"(max-width: 640px) 100vw, 640px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/4e408c5714752608e16b26532fdddb43/69538/vsce-publish.png 160w\", \"/static/4e408c5714752608e16b26532fdddb43/72799/vsce-publish.png 320w\", \"/static/4e408c5714752608e16b26532fdddb43/6af66/vsce-publish.png 640w\", \"/static/4e408c5714752608e16b26532fdddb43/d9199/vsce-publish.png 960w\", \"/static/4e408c5714752608e16b26532fdddb43/e548f/vsce-publish.png 975w\"],\n    \"sizes\": \"(max-width: 640px) 100vw, 640px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/4e408c5714752608e16b26532fdddb43/6af66/vsce-publish.png\",\n    \"alt\": \"vscePublish\",\n    \"title\": \"vscePublish\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"I had a quick check of my publisher profile and lo and behold, there\\u2019s\\nmy extension!\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"640px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/ed95fb9a535f6a2cfc14a3745830a20a/e513b/marketplace-extensions-management.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"18.35954101147471%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/svg+xml,%3csvg%20xmlns=\\\\'http://www.w3.org/2000/svg\\\\'%20width=\\\\'400\\\\'%20height=\\\\'73\\\\'%3e%3cpath%20d=\\\\'M0%207v6h401V1H0v6m333%2017v5h61V19h-61v5\\\\'%20fill=\\\\'%23d3d3d3\\\\'%20fill-rule=\\\\'evenodd\\\\'/%3e%3c/svg%3e')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"a\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/ed95fb9a535f6a2cfc14a3745830a20a/60a22/marketplace-extensions-management.webp 160w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/4c812/marketplace-extensions-management.webp 320w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/0ba47/marketplace-extensions-management.webp 640w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/e46b2/marketplace-extensions-management.webp 960w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/af3f0/marketplace-extensions-management.webp 1280w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/dcad1/marketplace-extensions-management.webp 2353w\"],\n    \"sizes\": \"(max-width: 640px) 100vw, 640px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/ed95fb9a535f6a2cfc14a3745830a20a/69538/marketplace-extensions-management.png 160w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/72799/marketplace-extensions-management.png 320w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/6af66/marketplace-extensions-management.png 640w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/d9199/marketplace-extensions-management.png 960w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/21b4d/marketplace-extensions-management.png 1280w\", \"/static/ed95fb9a535f6a2cfc14a3745830a20a/e513b/marketplace-extensions-management.png 2353w\"],\n    \"sizes\": \"(max-width: 640px) 100vw, 640px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/ed95fb9a535f6a2cfc14a3745830a20a/6af66/marketplace-extensions-management.png\",\n    \"alt\": \"YeomanErr\",\n    \"title\": \"YeomanErr\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Here\\u2019s my extension:\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://marketplace.visualstudio.com/items?itemName=spences10.vba-snippets\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"VBA Snippets\"), \"\\nfrom there you can fin the\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/spences10/vba-snippets\",\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"GitHub\"), \" repository too, I\\nhope it comes in handy for you one day!\"));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"I'm a published developer!  sort of  Well that was a bit painful, well\nnot actually I mean from the documentation I feel I was a bit mislead…","tableOfContents":{"items":[{"url":"#how-do-i-make-it-into-a-extension","title":"How do I make it into a extension?"}]},"timeToRead":2,"fields":{"slug":"/2016/12/03/first-vscode-extension/","editLink":"https://github.com/spences10/thelocalhost.blog/edit/authoring/posts/2016/12/03/first-vscode-extension/index.md"}}},"pageContext":{"slug":"/2016/12/03/first-vscode-extension/","previous":{"id":"be28e23f-5066-5a7a-8f12-1b1cd0cb8776","excerpt":"I have seen the same situation many times now in my career as a VBA\nDeveloper about how source code control is managed with VBA projects. Source control on VBA has long been a bit of a nonsense, there isn't\nany really. When I started my first…","frontmatter":{"title":"VBA Code Export for Version Control Systems","date":"2016-11-14T00:00:00.000Z"},"fields":{"slug":"/2016/11/14/vba-ide-export/"}},"next":{"id":"a345317b-5454-5569-9b00-4f9dad37996f","excerpt":"Since setting up this blog I haven't really bothered with Jekyll any\nmore than just forking Barry Clarke's repo of Jekyll Now and adding\nthese posts as and when the feeling takes me. So I got to checking out Barry's blog and his Jekyll Now templates…","frontmatter":{"title":"Starting again with Jekyll","date":"2016-12-17T00:00:00.000Z"},"fields":{"slug":"/2016/12/17/starting-again-with-jekyll/"}}}}}