This commit is contained in:
2019-09-17 12:26:55 -04:00
parent 1efd869800
commit d6aecb59e2
10 changed files with 587 additions and 12 deletions
+11 -10
View File
@@ -1,16 +1,17 @@
full-install: system-install python-deps task: @confirm install-deps
echo "hi, $1"
python-deps: install-deps: @skip:key=./Pipfile.lock system-deps
pipenv install pipenv install
python-dev-deps: system-deps: install-jq
pipenv install --dev set -ex
system-install: @confirm brew install pipenv
brew install python pipenv
pypi-upload: python-dev-deps if ! brew info --installed --json | jq 'map(.name) | index( "pipenv" )'; then
pipenv run setup.py upload brew install pipenv
fi
test: install-jq:
echo $@ brew install jq
+4
View File
@@ -0,0 +1,4 @@
.vscode/**
.vscode-test/**
.gitignore
vsc-extension-quickstart.md
+9
View File
@@ -0,0 +1,9 @@
render/syntax: @test
cat $HELLO
npx js-yaml syntaxes/bakefile.tmLanguage.yaml > syntaxes/bakefile.tmLanguage.json
install/code:
set -ex && code --install-extension kennethreitz.bake "$PWD"
install/system:
yarn add -g yo generator-code
+9
View File
@@ -0,0 +1,9 @@
# Change Log
All notable changes to the "bake" extension will be documented in this file.
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
## [Unreleased]
- Initial release
+64 -2
View File
@@ -1,3 +1,65 @@
## Development # bake README
$ npm install -g yo generator-code This is the README for your extension "bake". After writing up a brief description, we recommend including the following sections.
## Features
Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
For example if there is an image subfolder under your extension project workspace:
\!\[feature X\]\(images/feature-x.png\)
> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
## Requirements
If you have any requirements or dependencies, add a section describing those and how to install and configure them.
## Extension Settings
Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
For example:
This extension contributes the following settings:
* `myExtension.enable`: enable/disable this extension
* `myExtension.thing`: set to `blah` to do something
## Known Issues
Calling out known issues can help limit users opening duplicate issues against your extension.
## Release Notes
Users appreciate release notes as you update your extension.
### 1.0.0
Initial release of ...
### 1.0.1
Fixed issue #.
### 1.1.0
Added features X, Y, and Z.
-----------------------------------------------------------------------------------------------------------
## Working with Markdown
**Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
* Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
* Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
### For more information
* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
**Enjoy!**
@@ -0,0 +1,67 @@
{
"comments": {
// symbol used for single line comment. Remove this entry if your language does not support line comments
"lineComment": "#"
},
// symbols used as brackets
"brackets": [
[
"{",
"}"
],
[
"[",
"]"
],
[
"(",
")"
]
],
// symbols that are auto closed when typing
"autoClosingPairs": [
[
"{",
"}"
],
[
"[",
"]"
],
[
"(",
")"
],
[
"\"",
"\""
],
[
"'",
"'"
]
],
// symbols that that can be used to surround a selection
"surroundingPairs": [
[
"{",
"}"
],
[
"[",
"]"
],
[
"(",
")"
],
[
"\"",
"\""
],
[
"'",
"'"
]
]
}
+37
View File
@@ -0,0 +1,37 @@
{
"name": "kennethreitz.bake",
"displayName": "bake",
"description": "Hilighting for Bake: a strangely familiar task runner.",
"version": "0.0.1",
"engines": {
"vscode": "^1.38.0"
},
"categories": [
"Programming Languages"
],
"contributes": {
"languages": [
{
"id": "bakefile",
"aliases": [
"Bakefile",
"bakefile"
],
"extensions": [
"Bakefile"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "bakefile",
"scopeName": "source.bakefile",
"path": "./syntaxes/Bakefile.syntax.json",
"embeddedLanguages": {
"task": "source.shell"
}
}
]
}
}
@@ -0,0 +1,358 @@
{
"information_for_contributors": [
"This file has been converted from https://github.com/fadeevab/make.tmbundle/blob/master/Syntaxes/bakefile.plist",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/fadeevab/make.tmbundle/commit/fa280d2f20b0b63dc7c11b6001e9257e2c67f826",
"name": "bakefile",
"scopeName": "source.bakefile",
"patterns": [
{
"include": "#comment"
},
{
"include": "#target"
},
{
"include": "#task"
},
{
"include": "#directives"
}
],
"repository": {
"comment": {
"begin": "(^[ \\t]+)?(?=#)",
"beginCaptures": {
"1": {
"name": "punctuation.whitespace.comment.leading.bakefile"
}
},
"end": "(?!\\G)",
"patterns": [
{
"begin": "#",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.bakefile"
}
},
"end": "(?=[^\\\\])$",
"name": "comment.line.number-sign.bakefile",
"patterns": [
{
"match": "\\\\\\n",
"name": "constant.character.escape.continuation.bakefile"
}
]
}
]
},
"directives": {
"patterns": [
{
"begin": "^[ ]*([s\\-]?include)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.include.bakefile"
}
},
"end": "^",
"patterns": [
{
"include": "#comment"
},
{
"match": "%",
"name": "constant.other.placeholder.bakefile"
}
]
},
{
"begin": "^[ ]*(vpath)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.vpath.bakefile"
}
},
"end": "^",
"patterns": [
{
"include": "#comment"
},
{
"match": "%",
"name": "constant.other.placeholder.bakefile"
}
]
},
{
"begin": "^\\s*(?:(override)\\s*)?(define)\\s*([^\\s]+)\\s*(=|\\?=|:=|\\+=)?(?=\\s)",
"captures": {
"1": {
"name": "keyword.control.override.bakefile"
},
"2": {
"name": "keyword.control.define.bakefile"
},
"3": {
"name": "variable.other.bakefile"
},
"4": {
"name": "punctuation.separator.key-value.bakefile"
}
},
"end": "^\\s*(endef)\\b",
"name": "meta.scope.conditional.bakefile",
"patterns": [
{
"begin": "\\G(?!\\n)",
"end": "^",
"patterns": [
{
"include": "#comment"
}
]
},
{
"include": "#variables"
},
{
"include": "#comment"
},
{
"include": "#directives"
}
]
},
{
"begin": "^[ ]*(export)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.$1.bakefile"
}
},
"end": "^",
"patterns": [
{
"include": "#comment"
},
{
"include": "#variable-assignment"
},
{
"match": "[^\\s]+",
"name": "variable.other.bakefile"
}
]
},
{
"begin": "^[ ]*(override|private)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.$1.bakefile"
}
},
"end": "^",
"patterns": [
{
"include": "#comment"
},
{
"include": "#variable-assignment"
}
]
},
{
"begin": "^[ ]*(unexport|undefine)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.$1.bakefile"
}
},
"end": "^",
"patterns": [
{
"include": "#comment"
},
{
"match": "[^\\s]+",
"name": "variable.other.bakefile"
}
]
},
{
"begin": "^\\s*(ifdef|ifndef)\\s*([^\\s]+)(?=\\s)",
"captures": {
"1": {
"name": "keyword.control.$1.bakefile"
},
"2": {
"name": "variable.other.bakefile"
},
"3": {
"name": "punctuation.separator.key-value.bakefile"
}
},
"end": "^\\s*(endif)\\b",
"name": "meta.scope.conditional.bakefile",
"patterns": [
{
"begin": "\\G(?!\\n)",
"end": "^",
"patterns": [
{
"include": "#comment"
}
]
},
{
"include": "$self"
}
]
},
{
"begin": "^\\s*(ifeq|ifneq)(?=\\s)",
"captures": {
"1": {
"name": "keyword.control.$1.bakefile"
}
},
"end": "^\\s*(endif)\\b",
"name": "meta.scope.conditional.bakefile",
"patterns": [
{
"begin": "\\G",
"end": "^",
"name": "meta.scope.condition.bakefile",
"patterns": [
{
"include": "#variables"
},
{
"include": "#comment"
}
]
},
{
"begin": "^\\s*else(?=\\s)",
"beginCaptures": {
"0": {
"name": "keyword.control.else.bakefile"
}
},
"end": "^"
},
{
"include": "$self"
}
]
}
]
},
"target": {
"begin": "^(?!\\t)([^:]*)(:)(?!\\=)",
"beginCaptures": {
"1": {
"patterns": [
{
"captures": {
"1": {
"name": "support.function.target.$1.bakefile"
}
},
"match": "^\\s*(\\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\\s*$"
},
{
"begin": "(?=\\S)",
"end": "(?=\\s|$)",
"name": "entity.name.function.target.bakefile",
"patterns": [
{
"include": "#variables"
},
{
"match": "%",
"name": "constant.other.placeholder.bakefile"
}
]
}
]
},
"2": {
"name": "punctuation.separator.key-value.bakefile"
}
},
"end": "[^\\\\]$",
"name": "meta.scope.target.bakefile",
"patterns": [
{
"begin": "\\G",
"end": "(?=[^\\\\])$",
"name": "meta.scope.prerequisites.bakefile",
"patterns": [
{
"match": "\\\\\\n",
"name": "constant.character.escape.continuation.bakefile"
},
{
"match": "%|\\*",
"name": "constant.other.placeholder.bakefile"
},
{
"include": "#comment"
},
{
"include": "#variables"
}
]
}
]
},
"task": {
"begin": "^(\\t| {4})([+\\-@]*)",
"beginCaptures": {
"1": {
"name": "keyword.control.$1.bakefile"
}
},
"end": "[^\\\\]$",
"name": "task",
"patterns": [
{
"match": "\\\\\\n",
"name": "constant.character.escape.continuation.bakefile"
},
{
"include": "#variables"
}
]
},
"interpolation": {
"patterns": [
{
"include": "#parentheses-interpolation"
}
]
},
"parentheses-interpolation": {
"begin": "\\(",
"end": "\\)",
"patterns": [
{
"include": "#interpolation"
}
]
},
"braces-interpolation": {
"begin": "{",
"end": "}",
"patterns": [
{
"include": "#interpolation"
}
]
}
}
}
+28
View File
@@ -0,0 +1,28 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
js-yaml@^3.13.1:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=