EthanBrown.SublimeText2.WebPackages

- Sublime package featuring the best web-oriented packages
   - AnguarlJS, AutoFileName, Chai, Emmet, CoffeeComplete Plus,
     Hayaku, jQuery, LESS, LiveReload, SublimeLinter (custom that
     features CoffeeLint support), Twitter Bootstrap Snippets
 - Also includes a custom keybinding package hosted on GitHub
 - Merges in customized settings for User Preferences
This commit is contained in:
Iristyle
2013-03-07 20:45:54 -05:00
parent a96bf479f8
commit 6f6ef5cb09
7 changed files with 375 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
<?xml version="1.0"?>
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<metadata>
<id>EthanBrown.SublimeText2.WebPackages</id>
<title>Sublime Text 2 - Web Development Packages</title>
<version>0.0.1</version>
<authors>Various</authors>
<owners>Ethan Brown</owners>
<summary>A number of packages helpful for auto-completion, snippets and syntax recognition of common web frameowrks and tools to increase editor productivity.</summary>
<description>Includes a number of very useful packages for Sublime Text 2.
Included
===========================================================================
- AngularJS (CoffeeScript)
https://github.com/EastPoint/Sublime-AngularJS-Coffee-Completions
- AutoFileName
https://github.com/BoundInCode/AutoFileName
- Chai Completions
https://github.com/pensive612/sublime-chai-full-completions
- CoffeeComplete Plus (Autocompletion)
https://github.com/justinmahar/SublimeCSAutocompletePlus
- DocBlockr
https://github.com/spadgos/sublime-jsdocs
- Emmet
https://github.com/sergeche/emmet-sublime
- Grunt
https://github.com/tvooo/sublime-grunt
- Hayaku - tools for writing CSS faster
https://github.com/hayaku/hayaku
- HTML5
https://github.com/mrmartineau/HTML5
- jQuery
https://github.com/SublimeText/jQuery
- LESS
https://github.com/danro/LESS-sublime
- LiveReload
https://github.com/dz0ny/LiveReload-sublimetext2
- Pretty JSON
https://github.com/dzhibas/SublimePrettyJson
- sublime-better-coffeescript
https://github.com/aponxi/sublime-better-coffeescript
- SublimeLinter
https://github.com/SublimeLinter/SublimeLinter
Using customized version that includes CoffeeLint support from
https://github.com/Iristyle/SublimeLinter
- Tag
https://github.com/SublimeText/Tag
- Twitter Bootstrap Snippet
https://github.com/devtellect/sublime-twitter-bootstrap-snippets/
Disables
===========================================================================
- CoffeeCompile
- CoffeeScript
- Live CSS
- LESS-build
- Sublime-HTMLPrettify
- ZenCoding
Customized Key Bindings
===========================================================================
https://github.com/Iristyle/SublimeKeyMap.Web
Additional Package Preferences
===========================================================================
SublimeLinter - Path config
SublimeGrunt - Path config
Additional User Preferences
===========================================================================
Rules for
- Autocompletion triggers, like . and $ in CoffeeScript
- Autocompletion commit on TAB
- ensuring 2 tab indent
- customized word_separators
</description>
<projectUrl>http://github.com/Iristyle/ChocolateyPackages/</projectUrl>
<tags>SublimeText package editor</tags>
<!-- Eula is in installer
<licenseUrl></licenseUrl>
-->
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<iconUrl>https://raw.github.com/Iristyle/ChocolateyPackages/master/SublimeText2.app/Sublime_Text.png</iconUrl>
<releaseNotes></releaseNotes>
<dependencies>
<dependency id="PowerShell" version="3.0"/>
<dependency id="SublimeText2.app" />
</dependencies>
</metadata>
<files>
<file src="tools\**" target="tools" />
<file src="..\core\JsonHelpers.ps1" target="tools" />
<file src="..\core\SublimeHelpers.ps1" target="tools" />
</files>
</package>

View File

@@ -0,0 +1,31 @@
{
"installed_packages":
[
"AngularJS (CoffeeScript)",
"AutoFileName",
"Chai Completions",
"CoffeeComplete Plus (Autocompletion)",
"DocBlockr",
"Emmet",
"Grunt",
"Hayaku - tools for writing CSS faster",
"HTML5",
"jQuery",
"LESS",
"LiveReload",
"Pretty JSON",
"sublime-better-coffeescript",
"SublimeLinter",
"Tag",
"Twitter Bootstrap Snippets",
"ZZZ.EthanBrown.SublimeKeyMap.Web"
],
"package_name_map": {
"SublimeKeyMap.Web": "ZZZ.EthanBrown.SublimeKeyMap.Web"
},
"repositories":
[
"https://github.com/Iristyle/SublimeKeyMap.Web",
"https://github.com/Iristyle/SublimeLinter"
]
}

View File

@@ -0,0 +1,33 @@
{
"auto_complete_commit_on_tab": true,
"auto_complete_triggers":
[
{
"characters": "<",
"selector": "text.html"
},
{
"characters": "/",
"selector": "string.quoted.double.html,string.quoted.single.html, source.css"
},
{
"characters": "$",
"selector": "source.coffee, source.js, source.js.embedded.html"
},
{
"characters": ".@",
"selector": "source.coffee"
}
],
"ignored_packages":
[
"CoffeeCompile",
"CoffeeScript",
"Live CSS",
"LESS-build",
"Sublime-HTMLPrettify",
"ZenCoding"
],
"tab_size": 2,
"word_separators": "./\\()\"'-:,.;<>~!@#%^&*|+=[]{}`~?"
}

View File

@@ -0,0 +1,5 @@
{
"exec_args": {
"path": "{{node_path}}"
}
}

View File

@@ -0,0 +1,44 @@
{
"sublimelinter_executable_map":
{
"javascript":"{{node_path}}",
"css":"{{node_path}}"
},
"sublimelinter_delay": 0.5,
"sublimelinter_gutter_marks": true,
"sublimelinter_popup_errors_on_save": true,
"javascript_linter": "jshint",
// http://www.jshint.com/options/ for more info. eval *NOT* allowed
"jshint_options":
{
"indent": 0,
"evil": false,
"regexdash": true,
"browser": true,
"wsh": false,
"trailing": true,
"sub": false
},
"coffeelint_options":
{
"no_tabs": { "level": "error" },
"no_trailing_whitespace": { "level": "error" },
"max_line_length": { "level": "error", "value": 80 },
"camel_case_classes": { "level": "error" },
"indentation": { "level": "error", "value": 2 },
//TODO: https://github.com/clutchski/coffeelint/issues/50
"no_implicit_braces": { "level": "ignore" },
"no_implicit_parens": { "level": "error" },
"no_trailing_semicolons": { "level": "error" },
"no_plusplus": { "level": "ignore" },
"no_throwing_strings": { "level": "error" },
"cyclomatic_complexity": { "level": "ignore", "value": 11 },
"line_endings": { "level": "ignore", "value": "unix" },
"no_backticks": { "level": "error" },
"no_stand_alone_at": { "level": "error" }
},
// Set to true to highlight annotations
"sublimelinter_notes": true,
// The set of annotation phrases to highlight
"annotations": ["TODO", "README", "FIXME", "HACK"]
}

View File

@@ -0,0 +1,52 @@
$package = 'EthanBrown.SublimeText2.WebPackages'
function Get-CurrentDirectory
{
$thisName = $MyInvocation.MyCommand.Name
[IO.Path]::GetDirectoryName((Get-Content function:$thisName).File)
}
# simulate the unix command for finding things in path
# http://stackoverflow.com/questions/63805/equivalent-of-nix-which-command-in-powershell
function Which([string]$cmd)
{
Get-Command -ErrorAction "SilentlyContinue" $cmd |
Select -ExpandProperty Definition
}
try {
. (Join-Path (Get-CurrentDirectory) 'JsonHelpers.ps1')
. (Join-Path (Get-CurrentDirectory) 'SublimeHelpers.ps1')
$sublimeUserDataPath = Get-SublimeUserPath
$linterFileName = 'SublimeLinter.sublime-settings'
$gruntFileName = 'SublimeGrunt.sublime-settings'
$linter = Join-Path (Get-CurrentDirectory) $linterFileName
$grunt = Join-Path (Get-CurrentDirectory) $gruntFileName
$node = (Which node)
$nodeRoot = Split-Path $node
$escapedNode = $node -replace '\\', '\\'
([IO.File]::ReadAllText($linter)) -replace '{{node_path}}', $escapedNode |
Out-File -FilePath (Join-Path $sublimeUserDataPath $linterFileName) -Force -Encoding ASCII
$escapedNodeRoot = $nodeRoot -replace '\\', '\\'
([IO.File]::ReadAllText($grunt)) -replace '{{node_path}}', $escapedNodeRoot |
Out-File -FilePath (Join-Path $sublimeUserDataPath $gruntFileName) -Force -Encoding ASCII
$packageControl = (Join-Path (Get-CurrentDirectory) 'Package Control.sublime-settings')
Merge-PackageControlSettings -FilePath $packageControl
$preferences = (Join-Path (Get-CurrentDirectory) 'Preferences.sublime-settings')
Merge-Preferences -FilePath $preferences
if (Get-Process -Name sublime_text -ErrorAction SilentlyContinue)
{
Write-Warning 'Please close and re-open Sublime Text to force packages to update'
}
Write-ChocolateySuccess $package
} catch {
Write-ChocolateyFailure $package "$($_.Exception.Message)"
throw
}