提交 23cafd02 编写于 作者: A Alex Dima

Move text area related code to /browser/

上级 5397df98
......@@ -9,7 +9,7 @@ import { Disposable } from 'vs/base/common/lifecycle';
import * as browser from 'vs/base/browser/browser';
import * as dom from 'vs/base/browser/dom';
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ITextAreaWrapper } from 'vs/editor/common/controller/textAreaState';
import { IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ITextAreaWrapper } from 'vs/editor/browser/controller/textAreaState';
import { FastDomNode } from 'vs/base/browser/fastDomNode';
class ClipboardEventWrapper implements IClipboardEvent {
......
......@@ -8,8 +8,8 @@ import * as browser from 'vs/base/browser/browser';
import * as dom from 'vs/base/browser/dom';
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { GlobalScreenReaderNVDA } from 'vs/editor/common/config/commonEditorConfig';
import { TextAreaHandler } from 'vs/editor/common/controller/textAreaHandler';
import { TextAreaStrategy } from 'vs/editor/common/controller/textAreaState';
import { TextAreaHandler } from 'vs/editor/browser/controller/textAreaHandler';
import { TextAreaStrategy } from 'vs/editor/browser/controller/textAreaState';
import { Range } from 'vs/editor/common/core/range';
import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler';
import { Configuration } from 'vs/editor/browser/config/configuration';
......
......@@ -9,7 +9,7 @@ import * as strings from 'vs/base/common/strings';
import Event, { Emitter } from 'vs/base/common/event';
import { KeyCode } from 'vs/base/common/keyCodes';
import { Disposable } from 'vs/base/common/lifecycle';
import { IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ISimpleModel, ITextAreaWrapper, ITypeData, TextAreaState, TextAreaStrategy, createTextAreaState } from 'vs/editor/common/controller/textAreaState';
import { IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ISimpleModel, ITextAreaWrapper, ITypeData, TextAreaState, TextAreaStrategy, createTextAreaState } from 'vs/editor/browser/controller/textAreaState';
import { Range } from 'vs/editor/common/core/range';
export const CopyOptions = {
......@@ -383,4 +383,4 @@ export class TextAreaHandler extends Disposable {
this.lastCopiedValueIsFromEmptySelection = (selections.length === 1 && selections[0].isEmpty());
}
}
}
\ No newline at end of file
}
......@@ -20,7 +20,7 @@ import * as editorBrowser from 'vs/editor/browser/editorBrowser';
import { ViewController, ExecCoreEditorCommandFunc } from 'vs/editor/browser/view/viewController';
import { ViewEventDispatcher } from 'vs/editor/common/view/viewEventDispatcher';
import { ContentViewOverlays, MarginViewOverlays } from 'vs/editor/browser/view/viewOverlays';
import { LayoutProvider } from 'vs/editor/common/viewLayout/viewLayout';
import { ViewLayout } from 'vs/editor/common/viewLayout/viewLayout';
import { ViewContentWidgets } from 'vs/editor/browser/viewParts/contentWidgets/contentWidgets';
import { CurrentLineHighlightOverlay } from 'vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight';
import { CurrentLineMarginHighlightOverlay } from 'vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight';
......@@ -66,7 +66,7 @@ export class View extends ViewEventHandler {
private eventDispatcher: ViewEventDispatcher;
private layoutProvider: LayoutProvider;
private layoutProvider: ViewLayout;
private _scrollbar: EditorScrollbar;
public _context: ViewContext;
......@@ -121,7 +121,7 @@ export class View extends ViewEventHandler {
// - scrolling (i.e. viewport / full size) & co.
// - whitespaces (a.k.a. view zones) management & co.
// - line heights updating & co.
this.layoutProvider = new LayoutProvider(configuration, model.getLineCount(), this.eventDispatcher);
this.layoutProvider = new ViewLayout(configuration, model.getLineCount(), this.eventDispatcher);
// The view context is passed on to most classes (basically to reduce param. counts in ctors)
this._context = new ViewContext(configuration, model, this.eventDispatcher);
......
......@@ -14,7 +14,7 @@ import { ViewEventDispatcher } from 'vs/editor/common/view/viewEventDispatcher';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
import { IEditorWhitespace } from 'vs/editor/common/viewLayout/whitespaceComputer';
export class LayoutProvider extends Disposable implements IViewLayout {
export class ViewLayout extends Disposable implements IViewLayout {
static LINES_HORIZONTAL_EXTRA_PX = 30;
......@@ -129,7 +129,7 @@ export class LayoutProvider extends Disposable implements IViewLayout {
private _computeScrollWidth(maxLineWidth: number, viewportWidth: number): number {
let isViewportWrapping = this._configuration.editor.wrappingInfo.isViewportWrapping;
if (!isViewportWrapping) {
return Math.max(maxLineWidth + LayoutProvider.LINES_HORIZONTAL_EXTRA_PX, viewportWidth);
return Math.max(maxLineWidth + ViewLayout.LINES_HORIZONTAL_EXTRA_PX, viewportWidth);
}
return Math.max(maxLineWidth, viewportWidth);
}
......
......@@ -568,7 +568,7 @@ export class ViewModel extends Disposable implements IViewModel {
if (range.isEmpty()) {
if (enableEmptySelectionClipboard) {
let modelLineNumber = this.coordinatesConverter.convertViewPositionToModelPosition(new Position(range.startLineNumber, 1)).lineNumber;
return this.getModelLineContent(modelLineNumber) + newLineCharacter;
return this.model.getLineContent(modelLineNumber) + newLineCharacter;
} else {
return '';
}
......
......@@ -13,7 +13,7 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation
import { ICodeEditorService } from 'vs/editor/common/services/codeEditorService';
import * as editorCommon from 'vs/editor/common/editorCommon';
import { editorAction, IActionOptions, EditorAction } from 'vs/editor/common/editorCommonExtensions';
import { CopyOptions } from 'vs/editor/common/controller/textAreaHandler';
import { CopyOptions } from 'vs/editor/browser/controller/textAreaHandler';
import { EditorContextKeys } from 'vs/editor/common/editorContextKeys';
const CLIPBOARD_CONTEXT_MENU_GROUP = '9_cutcopypaste';
......
......@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import { TextAreaHandler } from 'vs/editor/common/controller/textAreaHandler';
import { TextAreaHandler } from 'vs/editor/browser/controller/textAreaHandler';
import * as browser from 'vs/base/browser/browser';
import { TextAreaStrategy, ISimpleModel } from 'vs/editor/common/controller/textAreaState';
import { TextAreaStrategy, ISimpleModel } from 'vs/editor/browser/controller/textAreaState';
import { Range, IRange } from 'vs/editor/common/core/range';
import * as editorCommon from 'vs/editor/common/editorCommon';
import { TextAreaWrapper } from 'vs/editor/browser/controller/input/textAreaWrapper';
......
......@@ -5,11 +5,97 @@
'use strict';
import * as assert from 'assert';
import { IENarratorTextAreaState, ISimpleModel, TextAreaState } from 'vs/editor/common/controller/textAreaState';
import { IENarratorTextAreaState, ISimpleModel, TextAreaState, IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ITextAreaWrapper } from 'vs/editor/browser/controller/textAreaState';
import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { EndOfLinePreference } from 'vs/editor/common/editorCommon';
import { MockTextAreaWrapper } from 'vs/editor/test/common/mocks/mockTextAreaWrapper';
import Event, { Emitter } from 'vs/base/common/event';
import { Disposable } from 'vs/base/common/lifecycle';
export class MockTextAreaWrapper extends Disposable implements ITextAreaWrapper {
private _onKeyDown = this._register(new Emitter<IKeyboardEventWrapper>());
public onKeyDown: Event<IKeyboardEventWrapper> = this._onKeyDown.event;
private _onKeyUp = this._register(new Emitter<IKeyboardEventWrapper>());
public onKeyUp: Event<IKeyboardEventWrapper> = this._onKeyUp.event;
private _onKeyPress = this._register(new Emitter<IKeyboardEventWrapper>());
public onKeyPress: Event<IKeyboardEventWrapper> = this._onKeyPress.event;
private _onCompositionStart = this._register(new Emitter<ICompositionEvent>());
public onCompositionStart: Event<ICompositionEvent> = this._onCompositionStart.event;
private _onCompositionUpdate = this._register(new Emitter<ICompositionEvent>());
public onCompositionUpdate: Event<ICompositionEvent> = this._onCompositionUpdate.event;
private _onCompositionEnd = this._register(new Emitter<ICompositionEvent>());
public onCompositionEnd: Event<ICompositionEvent> = this._onCompositionEnd.event;
private _onInput = this._register(new Emitter<void>());
public onInput: Event<void> = this._onInput.event;
private _onCut = this._register(new Emitter<IClipboardEvent>());
public onCut: Event<IClipboardEvent> = this._onCut.event;
private _onCopy = this._register(new Emitter<IClipboardEvent>());
public onCopy: Event<IClipboardEvent> = this._onCopy.event;
private _onPaste = this._register(new Emitter<IClipboardEvent>());
public onPaste: Event<IClipboardEvent> = this._onPaste.event;
public _value: string;
public _selectionStart: number;
public _selectionEnd: number;
public _isInOverwriteMode: boolean;
constructor() {
super();
this._value = '';
this._selectionStart = 0;
this._selectionEnd = 0;
this._isInOverwriteMode = false;
}
public getValue(): string {
return this._value;
}
public setValue(reason: string, value: string): void {
this._value = value;
this._selectionStart = this._value.length;
this._selectionEnd = this._value.length;
}
public getSelectionStart(): number {
return this._selectionStart;
}
public getSelectionEnd(): number {
return this._selectionEnd;
}
public setSelectionRange(selectionStart: number, selectionEnd: number): void {
if (selectionStart < 0) {
selectionStart = 0;
}
if (selectionStart > this._value.length) {
selectionStart = this._value.length;
}
if (selectionEnd < 0) {
selectionEnd = 0;
}
if (selectionEnd > this._value.length) {
selectionEnd = this._value.length;
}
this._selectionStart = selectionStart;
this._selectionEnd = selectionEnd;
}
public isInOverwriteMode(): boolean {
return this._isInOverwriteMode;
}
}
suite('TextAreaState', () => {
......
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import Event, { Emitter } from 'vs/base/common/event';
import { Disposable } from 'vs/base/common/lifecycle';
import { IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ITextAreaWrapper } from 'vs/editor/common/controller/textAreaState';
export class MockTextAreaWrapper extends Disposable implements ITextAreaWrapper {
private _onKeyDown = this._register(new Emitter<IKeyboardEventWrapper>());
public onKeyDown: Event<IKeyboardEventWrapper> = this._onKeyDown.event;
private _onKeyUp = this._register(new Emitter<IKeyboardEventWrapper>());
public onKeyUp: Event<IKeyboardEventWrapper> = this._onKeyUp.event;
private _onKeyPress = this._register(new Emitter<IKeyboardEventWrapper>());
public onKeyPress: Event<IKeyboardEventWrapper> = this._onKeyPress.event;
private _onCompositionStart = this._register(new Emitter<ICompositionEvent>());
public onCompositionStart: Event<ICompositionEvent> = this._onCompositionStart.event;
private _onCompositionUpdate = this._register(new Emitter<ICompositionEvent>());
public onCompositionUpdate: Event<ICompositionEvent> = this._onCompositionUpdate.event;
private _onCompositionEnd = this._register(new Emitter<ICompositionEvent>());
public onCompositionEnd: Event<ICompositionEvent> = this._onCompositionEnd.event;
private _onInput = this._register(new Emitter<void>());
public onInput: Event<void> = this._onInput.event;
private _onCut = this._register(new Emitter<IClipboardEvent>());
public onCut: Event<IClipboardEvent> = this._onCut.event;
private _onCopy = this._register(new Emitter<IClipboardEvent>());
public onCopy: Event<IClipboardEvent> = this._onCopy.event;
private _onPaste = this._register(new Emitter<IClipboardEvent>());
public onPaste: Event<IClipboardEvent> = this._onPaste.event;
public _value: string;
public _selectionStart: number;
public _selectionEnd: number;
public _isInOverwriteMode: boolean;
constructor() {
super();
this._value = '';
this._selectionStart = 0;
this._selectionEnd = 0;
this._isInOverwriteMode = false;
}
public getValue(): string {
return this._value;
}
public setValue(reason: string, value: string): void {
this._value = value;
this._selectionStart = this._value.length;
this._selectionEnd = this._value.length;
}
public getSelectionStart(): number {
return this._selectionStart;
}
public getSelectionEnd(): number {
return this._selectionEnd;
}
public setSelectionRange(selectionStart: number, selectionEnd: number): void {
if (selectionStart < 0) {
selectionStart = 0;
}
if (selectionStart > this._value.length) {
selectionStart = this._value.length;
}
if (selectionEnd < 0) {
selectionEnd = 0;
}
if (selectionEnd > this._value.length) {
selectionEnd = this._value.length;
}
this._selectionStart = selectionStart;
this._selectionEnd = selectionEnd;
}
public isInOverwriteMode(): boolean {
return this._isInOverwriteMode;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册