Wiemitneo, erster Versuch.
Aufruf: <Compose> <u> <w> oder <Compose> <U> <W> Vor dem Aufruf muss man das zu suchende Zeichen im Clipboard haben, d.h. beispielsweise im Browser markiert und mit Strg+C ins Clipboard kopiert haben. Sollten sich mehrere Zeichen im Clipboard befinden, wird nur für das erste Zeichen die mögliche Belegung ausgegeben. Das bedeutet auch, dass für Multi-Zeichen-Compose-Sequenzen, die also mehrere Zeichen als Ergebnis einer Compose-Sequenz erzeugen, keine Hints angegeben werden. Die Funktion sucht in zweierlei Variablentabellen: Einerseits die Reverse-Compose Variablen, die mit CRC... beginnen, andererseits die Reverse-Key-Tabellen, die mit CRK... beginnen. Für die Ergebnisse der CRC-Suche werden die einzelnen Compose-Tastendrücke bislang _nicht_ weiter aufgeschlüsselt. Das Ergebnis wird jedenfalls in einem Tooltip angezeigt. Das ganze erfolgt mehrzeilig, sollte es mehrere Möglichkeiten zum Erzeugen des Zeichens geben. Für die Erzeugung der Reverse-Compose-Variablen muss die compose.generated.ahk-Datei auf quasi das Doppelte aufgeblasen werden, um eine iterative Suche zu vermeiden. Vielleicht fällt uns diesbezüglich ja noch etwas Besseres ein. git-svn-id: https://svn.neo-layout.org@1653 b9310e46-f624-0410-8ea1-cfbb3a30dc96
This commit is contained in:
parent
f5440da7a1
commit
24229c131a
5 changed files with 6987 additions and 7 deletions
File diff suppressed because it is too large
Load diff
|
@ -126,6 +126,22 @@ ED(pos,caps,e1,e2,e3,e4,e5,e6,e7="",e8="") {
|
|||
CP6%pos% := e6
|
||||
CP7%pos% := e7
|
||||
CP8%pos% := e8
|
||||
if (e1 != "")
|
||||
CRK%e1% .= " " . e1
|
||||
if (e2 != "")
|
||||
CRK%e2% .= " S__M2" . e1
|
||||
if (e3 != "")
|
||||
CRK%e3% .= " S__M3" . e1
|
||||
if (e4 != "")
|
||||
CRK%e4% .= " S__M4" . e1
|
||||
if (e5 != "")
|
||||
CRK%e5% .= " S__M5" . e1
|
||||
if (e6 != "")
|
||||
CRK%e6% .= " S__M6" . e1
|
||||
if (e7 != "")
|
||||
CRK%e7% .= " S__M7" . e1
|
||||
if (e8 != "")
|
||||
CRK%e8% .= " S__M8" . e1
|
||||
}
|
||||
|
||||
EDN(pos1,pos2,caps,e1,e2,e3,e4,e5,e6) {
|
||||
|
|
|
@ -1891,9 +1891,12 @@ EncodeUnicodeFile(FFrom,FTo) {
|
|||
break
|
||||
}
|
||||
}
|
||||
if (modkeys != "")
|
||||
Composita := Composita "CD" modkeys ":=""" EncodeUni(ReplaceRight) """`r`n"
|
||||
else {
|
||||
if (modkeys != "") {
|
||||
ressymb := EncodeUni(ReplaceRight)
|
||||
Composita .= "CD" . modkeys . ":=""" . ressymb . """`r`n"
|
||||
if (StrLen(ressymb)==5)
|
||||
Composita .= "CRC" . ressymb . ".="" " . modkeys . """`r`n"
|
||||
} else {
|
||||
Composita := Composita "; illegal " Xkbsym " in " A_LoopField "`r`n"
|
||||
Miss := Miss + 1
|
||||
}
|
||||
|
|
|
@ -33,10 +33,16 @@ CSU0020 := "space"
|
|||
**** ist (wie bei den diversen toten Zeichen) oder schlicht mit AHK nicht
|
||||
**** geht (wie das Key-Repeat der schließenden Klammer).
|
||||
*/
|
||||
DNCSU005E := "{^}{space}"
|
||||
DNCSU0060 := "{``}{space}"
|
||||
; DNCSU005E := "{^}{space}"
|
||||
; DNCSU0060 := "{``}{space}"
|
||||
; DNCSU00B4 := "{´}{space}"
|
||||
|
||||
CSU005E := ""
|
||||
CSU0060 := ""
|
||||
CSU00B4 := ""
|
||||
|
||||
DNCSU007D := "{}}" ; "{} down}" geht nicht, warum auch immer
|
||||
DNCSU00B4 := "{´}{space}"
|
||||
; CSU007D := ""
|
||||
|
||||
/**** die meisten der folgenden Shortcuts werden von AHK zwar verarbeitet,
|
||||
**** von dort aber nur als ALT+Numpad verschickt und daher nicht für alle
|
||||
|
@ -216,3 +222,30 @@ UNSHU20AC := 1 ; Euro
|
|||
UNSHU007E := 1 ; ~
|
||||
UNSHU007C := 1 ; |
|
||||
UNSHU00B5 := 1 ; µ
|
||||
|
||||
/*
|
||||
Jetzt noch ein paar Verschönerungsabkürzungen
|
||||
*/
|
||||
CBS__M2 := "(Shift)+"
|
||||
CBS__M3 := "(Mod3)+"
|
||||
CBS__M4 := "(Mod4)+"
|
||||
CBS__M5 := "(Mod5=Shift+Mod3)+"
|
||||
CBS__M6 := "(Mod6=Mod3+Mod4)+"
|
||||
CBS__M7 := "(Mod7=Shift+Mod4)+"
|
||||
CBS__M8 := "(Mod8=Shift+Mod3+Mod4)+"
|
||||
|
||||
CBSComp := "Compose"
|
||||
CBTAcut := "Akut"
|
||||
CBTgrav := "Grave"
|
||||
CBTcedi := "Cedilla"
|
||||
CBTabdt := "Abovedot"
|
||||
CBTogon := "Ogonek"
|
||||
CBTcflx := "Circumflex"
|
||||
CBTcron := "Caron"
|
||||
CBTbrve := "Breve"
|
||||
CBTbldt := "Belowdot"
|
||||
CBTtlde := "Tilde"
|
||||
CBTmcrn := "Macron"
|
||||
CBTdrss := "Diaeresis"
|
||||
CBTdbac := "Doubleacute"
|
||||
CBTstrk := "Stroke"
|
|
@ -480,3 +480,71 @@ PressHookCalc(PhysKey, ActKey, Char) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
CDSCompU0055U0057 := "P_WMN"
|
||||
CDSCompU0075U0077 := "P_WMN"
|
||||
|
||||
CharProc_WMN() {
|
||||
global
|
||||
TrayTip,Wie mit NEO, Here we are!,10,1
|
||||
ok := DllCall("OpenClipboard")
|
||||
if (!ok) {
|
||||
TrayTip,Wie mit NEO,Fehler in OpenClipboard,10,1
|
||||
return
|
||||
}
|
||||
uclph:=DllCall("GetClipboardData","uint",CF_UNICODETEXT:=13)
|
||||
if (uclph == 0) {
|
||||
DllCall("CloseClipboard")
|
||||
TrayTip,Wie mit NEO,Fehler in GetClipboardData,10,1
|
||||
return
|
||||
}
|
||||
uclp := DllCall("GlobalLock","uint",uclph)
|
||||
if (uclp == 0) {
|
||||
DllCall("CloseClipboard")
|
||||
TrayTip,Wie mit NEO,Fehler in GlobalLock,10,1
|
||||
return
|
||||
}
|
||||
a := *(uclp+0)
|
||||
b := *(uclp+1)
|
||||
|
||||
DllCall("GlobalUnlock","uint",uclph)
|
||||
DllCall("CloseClipboard")
|
||||
|
||||
SetFormat,Integer,h
|
||||
a += 256*b
|
||||
SetFormat,Integer,d
|
||||
a := "U" . substr("0000" . substr(a,3),-3)
|
||||
wtt := CRC%a% . " " . CRK%a% . " "
|
||||
if (wtt=="") {
|
||||
TrayTip,Wie mit NEO,Keine Information`, wie %a% eingegeben werden kann!,10,1
|
||||
return
|
||||
}
|
||||
|
||||
wmn := ""
|
||||
loop,parse,wtt,%A_Space%
|
||||
{
|
||||
this_wmn := ""
|
||||
this_wtt := A_LoopField
|
||||
if (this_wtt == "")
|
||||
continue ; probably at first or last entry
|
||||
loop {
|
||||
if (this_wtt == "")
|
||||
break
|
||||
this_char := substr(this_wtt,1,5)
|
||||
this_wtt := substr(this_wtt,6)
|
||||
if (CB%this_char% != "")
|
||||
this_char := CB%this_char%
|
||||
else if (CS%this_char% != "")
|
||||
this_char := CS%this_char%
|
||||
; this_char will contain Uxxxx if no shortcut is present. Fix this here.
|
||||
if (substr(this_char,-1) == ")+")
|
||||
this_wmn .= this_char
|
||||
else if (substr(this_wmn,-1) == ")+")
|
||||
this_wmn .= "<" . this_char . ">"
|
||||
else
|
||||
this_wmn .= " <" . this_char . ">"
|
||||
}
|
||||
wmn .= this_wmn . "`r`n"
|
||||
}
|
||||
TrayTip,Wie mit NEO,% wmn,10,1
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue