as long as the keyMapper only map to #enclose: and not #shiftEnclose:,
no problem.

Nicolas

2011/8/4 Stéphane Ducasse <[email protected]>:
> What is on our todo is to introduce keymapper or another solution to have no 
> hardcoded keys in the complete system.
> Now my time is short... sadly. But indeed this is good if we can clean that 
> part.
> Stef
>
>
>> http://code.google.com/p/pharo/issues/detail?id=4599
>>
>> 2011/8/4 Nicolas Cellier <[email protected]>:
>>> I'm typing this message on a mac French keyboard.
>>> That means I can obtain the holy brackets [ | ] only through weird
>>> keystroke combinations
>>> | = shit+option+L
>>> [ = shift+option+( where shift+5 is (
>>>
>>> Enclosing a text in square brackets would require some finger torture
>>> both in Squeak/Pharo
>>> shift+option+command+(
>>> But this does not work because of #shiftEnclose: rules encountered in
>>> #initializeShiftCmdKeyShortcuts
>>> (found both ParagraphEditor class and TextEditor class)
>>>
>>>        "Note: Command key overrides shift key, so, for example, cmd-shift-9
>>> produces $9 not $("
>>>        '9[,''' do: [ :char | cmdMap at: (char asciiValue + 1) put:
>>> #shiftEnclose: ].       "({< and double-quote"
>>>        "Note: Must use cmd-9 or ctrl-9 to get '()' since cmd-shift-9 is a
>>> Mac FKey command."
>>>
>>> shiftEnclose: is badly designed because it does hardcode the keyboard
>>> layout (see below).
>>> This is not compatible with modern VMs, at least the mac ones, because
>>> they deliver a unicode codePoint for $[ or $|, not a raw keycode.
>>> It's easy to remove this anachronism and correct the mapping:
>>>
>>>        "On some keyboards, these characters require a shift"
>>>        '([<{|"''' do: [:char | cmdMap at: char asciiValue + 1 put: 
>>> #enclose:].
>>>
>>> To avoid pushing a mac-centric change in trunk, I need to know if the
>>> Linux/Windows VM would support above modification.
>>> Can anyone check for me ?
>>>
>>> Nicolas
>>>
>>>
>>>
>>>
>>>
>>> Example of hardcoded keyboard layout:
>>> TextEditor>>shiftEnclose: aKeyboardEvent
>>>        "Insert or remove bracket characters around the current selection.
>>>         Flushes typeahead."
>>>
>>>        | char left right startIndex stopIndex oldSelection which text |
>>>        char := aKeyboardEvent keyCharacter.
>>>        char = $9 ifTrue: [ char := $( ].
>>>        char = $, ifTrue: [ char := $< ].
>>>        char = $[ ifTrue: [ char := ${ ].
>>>        char = $' ifTrue: [ char := $" ].
>>>        char asciiValue = 27 ifTrue: [ char := ${ ].    "ctrl-["
>>> snip...
>>>
>>
>
>
>

Reply via email to