Listen for key input from editor script

I use an editor script placed in editor folder, which listens to a key pressed.
When the key is pressed, it is supposed to trigger a function from MonoBehavior script. The issue is that the function does not get triggered at all. I am even adding EventSystem in my inspector. What is the problem here? :

[CustomEditor (typeof (Switcher))]
public class SiwtcherEditor : Editor {
    void OnSceneGUI () {
        Switcher script = (Switcher) target;
        Event e = Event.current;
        switch (e.type) {
            case EventType.KeyDown:
                {
                    if (Event.current.keyCode == (KeyCode.A)) {
                        Debug.Log ("A pressed");

                        script.SwitchHere();
                        e.Use ();
                    }
                    break;
                }
        }
    }
}
public class Switcher : MonoBehaviour {
    public void SwitchHere () {
        Debug.Log ("GotINPUT");
    }
}

Is your Editor script inside Assets/Editor folder?

Yes, of course, Editor script is inside Assets/Editor folder.

its work only if you actively selected on the scene, if you select from Hierarchy/Inspector or other windows it will not run

select the object on the scene and press “A” you should see the log