- Offizieller Beitrag
Hi,
wer im SciTE-Menü eigene Skripte, Tools etc. einbindet muß dafür dem Befehl eine Nummer zuweisen (command.Nr....).
Die Anzahl der Nummern ist begrenzt auf 50 ( 0-49 ) und bei Installation von ScITE4AutoIt sind gleich mal 35 verbraten . Über die SciTE-Konfiguration (in SciTE Strg+1 <Tools-Selection>) könnt ihr auswählen welche dieser Tools ihr überhaupt möchtet. Ich verwende kaum ein Drittel davon.
Habt ihr dort Tools abgewählt, stehen die command-Nummern zur freien Verfügung und können von euch in den SciTEUser.properties eigenständig belegt werden.
Damit ihr nicht beide properties-Dateien händisch durchsuchen müßt nach freien command-Nummern, habe ich dafür ein kleines Skript erstellt.
Kleiner Tipp:
Verwendet als erstes die Nummern 36-49. Erst wenn ihr damit nicht mehr ausreicht, solltet ihr die Nummern der deaktivierten Tools verwenden.
Hintergrund: Kommt eine neue SciTE-Version, dann werden die Tools alle wieder aktiv installiert. Vergeßt ihr diese zu deaktivieren kann das in Einzelfällen zu Konflikten mit euren Einträgen in den User.properties führen, falls z.B. bei den Tools ein Befehlsdetail mehr als bei euch zur gleichen Nummer hinterlegt ist.
Grundsätzlich haben alle Einträge in den User.properties höchste Priorität. Deshalb sollte man auch ausschließlich dort Einträge vornehmen.
OK, Anhängen geht nicht. 2 kB ist viiieeel zu riesig für WoltLab: Die Datei _GetFreeCommandNum[0.1].au3 ist zu groß (PHP Limit). :wacko:
Also müßt ihr kopieren.
Spoiler anzeigen
#Region - TimeStamp
; 2012-04-02 12:49:28 v 0.1
#EndRegion - TimeStamp
#include <File.au3>
$sPath1 = StringTrimRight(@AutoItExe, StringLen(@AutoItExe)-StringInStr(@AutoItExe, '\', 1, -1)) & 'SciTE\properties\au3.properties'
$sPath2 = @HomeDrive & @HomePath & '\SciTEUser.properties'
$sUsed = ''
_GetUsed($sPath1, $sUsed)
_GetUsed($sPath2, $sUsed)
Local $aUsed = StringSplit(StringTrimRight($sUsed, 1), ' '), $sFree = '', $fFound
For $i = 0 To 49
$fFound = False
For $j = 1 To $aUsed[0]
If $aUsed[$j] = $i Then
$fFound = True
ExitLoop
EndIf
Next
If Not $fFound Then $sFree &= $i & ' '
Next
$sFree = StringTrimRight($sFree, 1)
ConsoleWrite('! Freie command-Zahlen: ' & $sFree & @CRLF)
Func _GetUsed($_path, ByRef $_s)
Local $aFile, $aMatch, $sUsed = ''
_FileReadToArray($_path, $aFile)
For $i = 1 To $aFile[0]
If StringRegExp($aFile[$i], '^b?command\.\d{1,2}.+') Then
$aMatch = StringRegExp($aFile[$i], '^b?command\.(\d{1,2}).+', 3)
$_s &= $aMatch[0] & ' '
EndIf
Next
EndFunc