mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Replace vendor powershell.tmBundle by SublimeText powershell. Improve samples for PS.
This commit is contained in:
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -121,9 +121,9 @@
|
|||||||
[submodule "vendor/grammars/Handlebars"]
|
[submodule "vendor/grammars/Handlebars"]
|
||||||
path = vendor/grammars/Handlebars
|
path = vendor/grammars/Handlebars
|
||||||
url = https://github.com/daaain/Handlebars
|
url = https://github.com/daaain/Handlebars
|
||||||
[submodule "vendor/grammars/powershell.tmbundle"]
|
[submodule "vendor/grammars/powershell"]
|
||||||
path = vendor/grammars/powershell.tmbundle
|
path = vendor/grammars/powershell
|
||||||
url = https://github.com/davidpeckham/powershell.tmbundle
|
url = https://github.com/SublimeText/PowerShell
|
||||||
[submodule "vendor/grammars/jade-tmbundle"]
|
[submodule "vendor/grammars/jade-tmbundle"]
|
||||||
path = vendor/grammars/jade-tmbundle
|
path = vendor/grammars/jade-tmbundle
|
||||||
url = https://github.com/davidrios/jade-tmbundle
|
url = https://github.com/davidrios/jade-tmbundle
|
||||||
|
|||||||
@@ -350,7 +350,7 @@ vendor/grammars/pike-textmate:
|
|||||||
- source.pike
|
- source.pike
|
||||||
vendor/grammars/postscript.tmbundle:
|
vendor/grammars/postscript.tmbundle:
|
||||||
- source.postscript
|
- source.postscript
|
||||||
vendor/grammars/powershell.tmbundle:
|
vendor/grammars/powershell:
|
||||||
- source.powershell
|
- source.powershell
|
||||||
vendor/grammars/processing.tmbundle:
|
vendor/grammars/processing.tmbundle:
|
||||||
- source.processing
|
- source.processing
|
||||||
|
|||||||
116
samples/PowerShell/ZLocation.psd1
Normal file
116
samples/PowerShell/ZLocation.psd1
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
#
|
||||||
|
# Module manifest for module 'ZLocation'
|
||||||
|
#
|
||||||
|
# Generated by: sevoroby
|
||||||
|
#
|
||||||
|
# Generated on: 12/10/2014
|
||||||
|
#
|
||||||
|
|
||||||
|
@{
|
||||||
|
|
||||||
|
# Script module or binary module file associated with this manifest.
|
||||||
|
RootModule = 'ZLocation.psm1'
|
||||||
|
|
||||||
|
# Version number of this module.
|
||||||
|
ModuleVersion = '0.1'
|
||||||
|
|
||||||
|
# ID used to uniquely identify this module
|
||||||
|
GUID = '18e8ca17-7f67-4f1c-85ff-159373bf66f5'
|
||||||
|
|
||||||
|
# Author of this module
|
||||||
|
Author = 'Sergei Vorobev'
|
||||||
|
|
||||||
|
# Company or vendor of this module
|
||||||
|
CompanyName = 'Microsoft'
|
||||||
|
|
||||||
|
# Copyright statement for this module
|
||||||
|
Copyright = '(c) 2014 Sergei Vorobev. All rights reserved.'
|
||||||
|
|
||||||
|
# Description of the functionality provided by this module
|
||||||
|
# Description = ''
|
||||||
|
|
||||||
|
# Minimum version of the Windows PowerShell engine required by this module
|
||||||
|
# PowerShellVersion = ''
|
||||||
|
|
||||||
|
# Name of the Windows PowerShell host required by this module
|
||||||
|
# PowerShellHostName = ''
|
||||||
|
|
||||||
|
# Minimum version of the Windows PowerShell host required by this module
|
||||||
|
# PowerShellHostVersion = ''
|
||||||
|
|
||||||
|
# Minimum version of Microsoft .NET Framework required by this module
|
||||||
|
# DotNetFrameworkVersion = ''
|
||||||
|
|
||||||
|
# Minimum version of the common language runtime (CLR) required by this module
|
||||||
|
# CLRVersion = ''
|
||||||
|
|
||||||
|
# Processor architecture (None, X86, Amd64) required by this module
|
||||||
|
# ProcessorArchitecture = ''
|
||||||
|
|
||||||
|
# Modules that must be imported into the global environment prior to importing this module
|
||||||
|
# RequiredModules = @()
|
||||||
|
|
||||||
|
# Assemblies that must be loaded prior to importing this module
|
||||||
|
# RequiredAssemblies = @()
|
||||||
|
|
||||||
|
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
|
||||||
|
# ScriptsToProcess = @()
|
||||||
|
|
||||||
|
# Type files (.ps1xml) to be loaded when importing this module
|
||||||
|
# TypesToProcess = @()
|
||||||
|
|
||||||
|
# Format files (.ps1xml) to be loaded when importing this module
|
||||||
|
# FormatsToProcess = @()
|
||||||
|
|
||||||
|
# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
|
||||||
|
NestedModules = @("ZLocation.Storage.psm1", "ZLocation.Search.psm1")
|
||||||
|
|
||||||
|
# Functions to export from this module
|
||||||
|
FunctionsToExport = '*'
|
||||||
|
|
||||||
|
# Cmdlets to export from this module
|
||||||
|
CmdletsToExport = '*'
|
||||||
|
|
||||||
|
# Variables to export from this module
|
||||||
|
VariablesToExport = '*'
|
||||||
|
|
||||||
|
# Aliases to export from this module
|
||||||
|
AliasesToExport = '*'
|
||||||
|
|
||||||
|
# List of all modules packaged with this module
|
||||||
|
# ModuleList = @()
|
||||||
|
|
||||||
|
# List of all files packaged with this module
|
||||||
|
# FileList = @()
|
||||||
|
|
||||||
|
# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
|
||||||
|
PrivateData = @{
|
||||||
|
|
||||||
|
PSData = @{
|
||||||
|
|
||||||
|
# Tags applied to this module. These help with module discovery in online galleries.
|
||||||
|
# Tags = @()
|
||||||
|
|
||||||
|
# A URL to the license for this module.
|
||||||
|
# LicenseUri = ''
|
||||||
|
|
||||||
|
# A URL to the main website for this project.
|
||||||
|
# ProjectUri = ''
|
||||||
|
|
||||||
|
# A URL to an icon representing this module.
|
||||||
|
# IconUri = ''
|
||||||
|
|
||||||
|
# ReleaseNotes of this module
|
||||||
|
# ReleaseNotes = ''
|
||||||
|
|
||||||
|
} # End of PSData hashtable
|
||||||
|
|
||||||
|
} # End of PrivateData hashtable
|
||||||
|
|
||||||
|
# HelpInfo URI of this module
|
||||||
|
# HelpInfoURI = ''
|
||||||
|
|
||||||
|
# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
|
||||||
|
# DefaultCommandPrefix = ''
|
||||||
|
|
||||||
|
}
|
||||||
91
samples/PowerShell/ZLocation.psm1
Normal file
91
samples/PowerShell/ZLocation.psm1
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
#
|
||||||
|
# Weight function.
|
||||||
|
#
|
||||||
|
function Update-ZLocation([string]$path)
|
||||||
|
{
|
||||||
|
$now = [datetime]::Now
|
||||||
|
if (Test-Path variable:global:__zlocation_current)
|
||||||
|
{
|
||||||
|
$prev = $global:__zlocation_current
|
||||||
|
$weight = $now.Subtract($prev.Time).TotalSeconds
|
||||||
|
Add-ZWeight ($prev.Location) $weight
|
||||||
|
}
|
||||||
|
|
||||||
|
$global:__zlocation_current = @{
|
||||||
|
Location = $path
|
||||||
|
Time = [datetime]::Now
|
||||||
|
}
|
||||||
|
|
||||||
|
# populate folder immidiatly after the first cd
|
||||||
|
Add-ZWeight $path 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# this approach hurts `cd` performance (0.0008 sec vs 0.025 sec).
|
||||||
|
# Consider replace it with OnIdle Event.
|
||||||
|
(Get-Variable pwd).attributes.Add((new-object ValidateScript { Update-ZLocation $_.Path; return $true }))
|
||||||
|
#
|
||||||
|
# End of weight function.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tab complention.
|
||||||
|
#
|
||||||
|
if (Test-Path Function:\TabExpansion) {
|
||||||
|
Rename-Item Function:\TabExpansion PreZTabExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-EscapedPath
|
||||||
|
{
|
||||||
|
param(
|
||||||
|
[Parameter(
|
||||||
|
Position=0,
|
||||||
|
Mandatory=$true,
|
||||||
|
ValueFromPipeline=$true,
|
||||||
|
ValueFromPipelineByPropertyName=$true)
|
||||||
|
]
|
||||||
|
[string]$path
|
||||||
|
)
|
||||||
|
|
||||||
|
process {
|
||||||
|
if ($path.Contains(' '))
|
||||||
|
{
|
||||||
|
return '"' + $path + '"'
|
||||||
|
}
|
||||||
|
return $path
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function global:TabExpansion($line, $lastWord) {
|
||||||
|
switch -regex ($line) {
|
||||||
|
"^(Set-ZLocation|z) .*" {
|
||||||
|
$arguments = $line -split ' ' | Where { $_.length -gt 0 } | select -Skip 1
|
||||||
|
Find-Matches (Get-ZLocation) $arguments | Get-EscapedPath
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
if (Test-Path Function:\PreZTabExpansion) {
|
||||||
|
PreZTabExpansion $line $lastWord
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# End of tab completion.
|
||||||
|
#
|
||||||
|
|
||||||
|
function Set-ZLocation()
|
||||||
|
{
|
||||||
|
if (-not $args) {
|
||||||
|
$args = @()
|
||||||
|
}
|
||||||
|
$matches = Find-Matches (Get-ZLocation) $args
|
||||||
|
if ($matches) {
|
||||||
|
Push-Location ($matches | Select-Object -First 1)
|
||||||
|
} else {
|
||||||
|
Write-Warning "Cannot find matching location"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Set-Alias -Name z -Value Set-ZLocation
|
||||||
|
Export-ModuleMember -Function Set-ZLocation, Get-ZLocation -Alias z
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# Hello world in powershell
|
|
||||||
Write-Host 'Hello World'
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Hello World powershell module
|
|
||||||
|
|
||||||
function hello() {
|
|
||||||
Write-Host 'Hello World'
|
|
||||||
}
|
|
||||||
65
samples/PowerShell/history.ps1
Normal file
65
samples/PowerShell/history.ps1
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
function Save-HistoryAll() {
|
||||||
|
$history = Get-History -Count $MaximumHistoryCount
|
||||||
|
[array]::Reverse($history)
|
||||||
|
$history = $history | Group CommandLine | Foreach {$_.Group[0]}
|
||||||
|
[array]::Reverse($history)
|
||||||
|
$history | Export-Csv $historyPath
|
||||||
|
}
|
||||||
|
|
||||||
|
function Save-HistoryIncremental() {
|
||||||
|
# Get-History -Count $MaximumHistoryCount | Group CommandLine | Foreach {$_.Group[0]} | Export-Csv $historyPath
|
||||||
|
Get-History -Count 1 | Export-Csv -Append $historyPath
|
||||||
|
}
|
||||||
|
|
||||||
|
# hook powershell's exiting event & hide the registration with -supportevent.
|
||||||
|
#Register-EngineEvent -SourceIdentifier powershell.exiting -SupportEvent -Action { Save-History }
|
||||||
|
|
||||||
|
$oldPrompt = Get-Content function:\prompt
|
||||||
|
|
||||||
|
if( $oldPrompt -notlike '*Save-HistoryIncremental*' )
|
||||||
|
{
|
||||||
|
$newPrompt = @'
|
||||||
|
Save-HistoryIncremental
|
||||||
|
|
||||||
|
'@
|
||||||
|
$newPrompt += $oldPrompt
|
||||||
|
$function:prompt = [ScriptBlock]::Create($newPrompt)
|
||||||
|
}
|
||||||
|
|
||||||
|
# load previous history, if it exists
|
||||||
|
if ((Test-Path $historyPath)) {
|
||||||
|
$loadTime =
|
||||||
|
(
|
||||||
|
Measure-Command {
|
||||||
|
Import-Csv $historyPath | Add-History
|
||||||
|
Save-HistoryAll
|
||||||
|
Clear-History
|
||||||
|
Import-Csv $historyPath | ? {$count++;$true} | Add-History
|
||||||
|
}
|
||||||
|
).totalseconds
|
||||||
|
Write-Host -Fore Green "`nLoaded $count history item(s) in $loadTime seconds.`n"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Search-History()
|
||||||
|
{
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Retrive and filter history based on query
|
||||||
|
.DESCRIPTION
|
||||||
|
.PARAMETER Name
|
||||||
|
.EXAMPLE
|
||||||
|
.LINK
|
||||||
|
#>
|
||||||
|
|
||||||
|
param(
|
||||||
|
[string[]] $query
|
||||||
|
)
|
||||||
|
|
||||||
|
$history = Get-History -Count $MaximumHistoryCount
|
||||||
|
foreach ($item in $query){
|
||||||
|
$item = $item.ToLower()
|
||||||
|
$history = $history | where {$_.CommandLine.ToLower().Contains($item)}
|
||||||
|
}
|
||||||
|
$history
|
||||||
|
}
|
||||||
1
vendor/grammars/powershell
vendored
Submodule
1
vendor/grammars/powershell
vendored
Submodule
Submodule vendor/grammars/powershell added at 84fd97265c
1
vendor/grammars/powershell.tmbundle
vendored
1
vendor/grammars/powershell.tmbundle
vendored
Submodule vendor/grammars/powershell.tmbundle deleted from f8716b432e
Reference in New Issue
Block a user