so far I have no idea :) But I will learn. Stef
On Aug 4, 2011, at 3:07 PM, Nicolas Cellier wrote: > 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... >>>> >>> >> >> >> >
