private void Create(ITextView textView, IEditorOptions editorOptions = null) { _textView = textView; _textBuffer = textView.TextBuffer; _snapshot = _textBuffer.CurrentSnapshot; _textBuffer.Changed += delegate { _snapshot = _textBuffer.CurrentSnapshot; }; _globalSettings = new Vim.GlobalSettings(); _localSettings = new LocalSettings(_globalSettings, FSharpOption.CreateForReference(editorOptions), FSharpOption.CreateForReference(textView)); _markMap = new MarkMap(new TrackingLineColumnService()); _vimData = new VimData(); _search = VimUtil.CreateSearchService(_globalSettings); _jumpList = VimUtil.CreateJumpList(); _statusUtil = new Mock<IStatusUtil>(MockBehavior.Strict); _navigator = VimUtil.CreateTextStructureNavigator(_textView, WordKind.NormalWord); _motionUtil = new MotionUtil( _textView, _markMap, _localSettings, _search, _navigator, _jumpList, _statusUtil.Object, VimUtil.GetWordUtil(textView), _vimData); }
private void Create2( ModeKind kind = ModeKind.VisualCharacter, params string[] lines) { _textView = EditorUtil.CreateTextView(lines); _textBuffer = _textView.TextBuffer; var vimTextBuffer = Vim.CreateVimTextBuffer(_textBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); _selection = _textView.Selection; _factory = new MockRepository(MockBehavior.Strict); _tracker = _factory.Create <ISelectionTracker>(); _tracker.Setup(x => x.Start()); _tracker.Setup(x => x.ResetCaret()); _tracker.Setup(x => x.UpdateSelection()); _operations = _factory.Create <ICommonOperations>(); _operations.SetupGet(x => x.TextView).Returns(_textView); _commandUtil = _factory.Create <ICommandUtil>(); var motionUtil = new MotionUtil(vimBufferData); var capture = new MotionCapture(vimBufferData, new IncrementalSearch(vimBufferData, _operations.Object)); var runner = new CommandRunner( _textView, Vim.RegisterMap, capture, _commandUtil.Object, (new Mock <IStatusUtil>()).Object, VisualKind.Character); _modeRaw = new VisualMode(vimBufferData, _operations.Object, motionUtil, kind, runner, capture, _tracker.Object); _mode = _modeRaw; _mode.OnEnter(ModeArgument.None); }
private void Create2( ModeKind kind = ModeKind.VisualCharacter, params string[] lines) { _textView = CreateTextView(lines); _textBuffer = _textView.TextBuffer; var vimTextBuffer = Vim.CreateVimTextBuffer(_textBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); var visualKind = VisualKind.OfModeKind(kind).Value; _selection = _textView.Selection; _factory = new MockRepository(MockBehavior.Strict); _tracker = _factory.Create <ISelectionTracker>(); _tracker.Setup(x => x.Start()); _tracker.Setup(x => x.UpdateSelection()); _tracker.Setup(x => x.RecordCaretTrackingPoint(It.IsAny <ModeArgument>())); _tracker.SetupGet(x => x.IsRunning).Returns(true); _operations = _factory.Create <ICommonOperations>(); _operations.SetupGet(x => x.TextView).Returns(_textView); _operations.Setup(x => x.MoveCaretToPoint(It.IsAny <SnapshotPoint>(), ViewFlags.Standard)); _commandUtil = _factory.Create <ICommandUtil>(); var motionUtil = new MotionUtil(vimBufferData, _operations.Object); var capture = new MotionCapture(vimBufferData, new IncrementalSearch(vimBufferData, _operations.Object, motionUtil)); var runner = new CommandRunner( vimBufferData, capture, _commandUtil.Object, VisualKind.Character, KeyRemapMode.Visual); _modeRaw = new VisualMode(vimBufferData, _operations.Object, motionUtil, visualKind, runner, capture, _tracker.Object); _mode = _modeRaw; _mode.OnEnter(ModeArgument.None); }
private void Create(ITextView textView) { _textView = textView; _textBuffer = textView.TextBuffer; _buffer = _textView.TextBuffer; _snapshot = _buffer.CurrentSnapshot; _buffer.Changed += delegate { _snapshot = _buffer.CurrentSnapshot; }; _globalSettings = new Vim.GlobalSettings(); _localSettings = new LocalSettings(_globalSettings, _textView); _markMap = new MarkMap(new TrackingLineColumnService()); _vimData = new VimData(); _search = VimUtil.CreateSearchService(_globalSettings); _jumpList = VimUtil.CreateJumpList(); _statusUtil = new Mock<IStatusUtil>(MockBehavior.Strict); _navigator = VimUtil.CreateTextStructureNavigator(_textView.TextBuffer); _motionUtil = new MotionUtil( _textView, _markMap, _localSettings, _search, _navigator, _jumpList, _statusUtil.Object, _vimData); }
private static void GetCheckRay(MotionDirection side, CharacterMotorConfig config, Transform toMove, Vector3[] output, float index, float distance) { Vector3 sideDir = MotionUtil.ToVector(side); Vector3 origin = toMove.position; Vector3 direction = Vector3.zero; GetCheckValue(ref origin, ref direction, sideDir.x, config, index, Vector3.right, Vector3.up, distance); GetCheckValue(ref origin, ref direction, sideDir.y, config, index, Vector3.up, Vector3.right, distance); output[0] = origin; output[1] = origin + direction; }
private void BtnAllDefault_Click(object sender, EventArgs e) { if (MessageBox.Show(string.Format("将所有的参数设置为默认值?"), "重置", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { foreach (var item in AxisMgr.Instance.FindAll()) { MotionUtil.ResetAxisPrm(item); } } }
private static Vector2 getForcesDirection(CharacterMotorState state) { var node = state.forces.First; var direction = Vector2.zero; while (node != null) { direction = direction + (MotionUtil.ToVector(node.Value.direction) * node.Value.factor); node = node.Next; } return(direction); }
/// <summary> /// Create the IVimBuffer with the given set of lines. Note that we intentionally don't /// set the mode to Insert here because the given commands should work irrespective of the /// mode. There are a few tests that rely on behavior from SelectionChangeTracker so they set /// the mode to Insert. /// </summary> /// <param name="lines"></param> protected virtual void Create(params string[] lines) { _textView = CreateTextView(lines); _textBuffer = _textView.TextBuffer; _vimBuffer = Vim.CreateVimBuffer(_textView); _globalSettings = _vimBuffer.GlobalSettings; _localSettings = _vimBuffer.LocalSettings; var operations = CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData); var motionUtil = new MotionUtil(_vimBuffer.VimBufferData, operations); _insertUtilRaw = new InsertUtil(_vimBuffer.VimBufferData, motionUtil, operations); _insertUtil = _insertUtilRaw; }
public MotionCaptureTest() { _textView = CreateTextView(); var vimTextBuffer = Vim.CreateVimTextBuffer(_textView.TextBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); var commonOperations = CommonOperationsFactory.GetCommonOperations(vimBufferData); var motionUtil = new MotionUtil(vimBufferData, commonOperations); _incrementalSearch = new IncrementalSearch(vimBufferData, commonOperations, motionUtil); _localSettings = vimTextBuffer.LocalSettings; _captureRaw = new MotionCapture( vimBufferData, _incrementalSearch); _capture = _captureRaw; }
protected void Create(ITextView textView) { _textView = textView; _textBuffer = textView.TextBuffer; _snapshot = _textBuffer.CurrentSnapshot; _textBuffer.Changed += delegate { _snapshot = _textBuffer.CurrentSnapshot; }; _vimTextBuffer = Vim.CreateVimTextBuffer(_textBuffer); _statusUtil = new Mock<IStatusUtil>(MockBehavior.Strict); var vimBufferData = CreateVimBufferData(_vimTextBuffer, _textView, statusUtil: _statusUtil.Object); _globalSettings = vimBufferData.LocalSettings.GlobalSettings; _localSettings = vimBufferData.LocalSettings; _markMap = vimBufferData.Vim.MarkMap; _vimData = vimBufferData.Vim.VimData; _search = vimBufferData.Vim.SearchService; var wordNavigator = CreateTextStructureNavigator(_textView.TextBuffer, WordKind.NormalWord); _motionUtil = new MotionUtil(vimBufferData); }
public static void Update(Transform toMove, CharacterMotorState state, CharacterMotorConfig config) { if (!state.isEnabled) { return; } Vector3 dir = getForcesDirection(state); dir = dir * Time.deltaTime; state.wasBlocked[MotionDirection.Up] = state.blocked[MotionDirection.Up]; state.wasBlocked[MotionDirection.Down] = state.blocked[MotionDirection.Down]; state.wasBlocked[MotionDirection.Left] = state.blocked[MotionDirection.Left]; state.wasBlocked[MotionDirection.Right] = state.blocked[MotionDirection.Right]; foreach (MotionDirection side in SIDES) { state.blocked[side] = false; Vector3 sideDir = MotionUtil.ToVector(side); var isMovingInSideXDir = Math.Sign(dir.x) == Math.Sign(sideDir.x); var isMovingInSideYDir = Math.Sign(dir.y) == Math.Sign(sideDir.y); if (!isMovingInSideXDir && !isMovingInSideYDir) { continue; } for (int i = 0; i < config.sideCheckCount; i++) { GetCheckRay(side, config, toMove, RAY_BUFFER, i, dir.magnitude); Vector3 direction = (RAY_BUFFER[1] - RAY_BUFFER[0]); float distance = GetBlockDistance(RAY_BUFFER[0], direction, config.layer); if (distance < float.MaxValue) { float canMove = Mathf.Max(0, distance - .01f); state.blocked[side] = true; dir.x = isMovingInSideXDir ? Mathf.Sign(dir.x) * Mathf.Min(canMove, Mathf.Abs(dir.x)) : dir.x; dir.y = isMovingInSideYDir ? Mathf.Sign(dir.y) * Mathf.Min(canMove, Mathf.Abs(dir.y)) : dir.y; break; } } } state.lastMotion = dir; toMove.position = toMove.position + dir; }
private void Create(KeyRemapMode countKeyRemapMode, params string[] lines) { _textView = CreateTextView(lines); _vimTextBuffer = Vim.CreateVimTextBuffer(_textView.TextBuffer); _registerMap = Vim.RegisterMap; var vimBufferData = CreateVimBufferData( _vimTextBuffer, _textView); _commandUtil = CreateCommandUtil(vimBufferData); var commonOperations = CommonOperationsFactory.GetCommonOperations(vimBufferData); var motionUtil = new MotionUtil(vimBufferData, commonOperations); var incrementalSearch = new IncrementalSearch(vimBufferData, commonOperations, motionUtil); var motionCapture = new MotionCapture(vimBufferData, incrementalSearch); _runnerRaw = new CommandRunner( vimBufferData, motionCapture, _commandUtil, VisualKind.Character, countKeyRemapMode); _runner = _runnerRaw; }
private void Create(params string[] lines) { _vimHost = (MockVimHost)Vim.VimHost; _textView = CreateTextView(lines); _globalSettings = Vim.GlobalSettings; _globalSettings.IncrementalSearch = true; _globalSettings.WrapScan = true; var vimTextBuffer = Vim.CreateVimTextBuffer(_textView.TextBuffer); _factory = new MockRepository(MockBehavior.Strict); _statusUtil = _factory.Create <IStatusUtil>(); _statusUtil.Setup(x => x.OnWarning(Resources.Common_SearchBackwardWrapped)); _statusUtil.Setup(x => x.OnWarning(Resources.Common_SearchForwardWrapped)); _vimData = Vim.VimData; var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); var operations = CommonOperationsFactory.GetCommonOperations(vimBufferData); var motionUtil = new MotionUtil(vimBufferData, operations); _searchRaw = new IncrementalSearch(vimBufferData, operations, motionUtil); _search = _searchRaw; }
private void Create2( ModeKind kind = ModeKind.VisualCharacter, params string[] lines) { _textView = CreateTextView(lines); _textBuffer = _textView.TextBuffer; var vimTextBuffer = Vim.CreateVimTextBuffer(_textBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); var visualKind = VisualKind.OfModeKind(kind).Value; _selection = _textView.Selection; _factory = new MockRepository(MockBehavior.Strict); _tracker = _factory.Create<ISelectionTracker>(); _tracker.Setup(x => x.Start()); _tracker.Setup(x => x.UpdateSelection()); _tracker.Setup(x => x.RecordCaretTrackingPoint(It.IsAny<ModeArgument>())); _tracker.SetupGet(x => x.IsRunning).Returns(true); _operations = _factory.Create<ICommonOperations>(); _operations.SetupGet(x => x.TextView).Returns(_textView); _operations.Setup(x => x.MoveCaretToPoint(It.IsAny<SnapshotPoint>(), ViewFlags.Standard)); _commandUtil = _factory.Create<ICommandUtil>(); var motionUtil = new MotionUtil(vimBufferData, _operations.Object); var capture = new MotionCapture(vimBufferData, new IncrementalSearch(vimBufferData, _operations.Object)); var runner = new CommandRunner( _textView, Vim.RegisterMap, capture, vimBufferData.LocalSettings, _commandUtil.Object, (new Mock<IStatusUtil>()).Object, VisualKind.Character, KeyRemapMode.Visual); _modeRaw = new VisualMode(vimBufferData, _operations.Object, motionUtil, visualKind, runner, capture, _tracker.Object); _mode = _modeRaw; _mode.OnEnter(ModeArgument.None); }
private void Create2( ModeKind kind = ModeKind.VisualCharacter, params string[] lines) { _textView = CreateTextView(lines); _textBuffer = _textView.TextBuffer; var vimTextBuffer = Vim.CreateVimTextBuffer(_textBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); _selection = _textView.Selection; _factory = new MockRepository(MockBehavior.Strict); _tracker = _factory.Create<ISelectionTracker>(); _tracker.Setup(x => x.Start()); _tracker.Setup(x => x.UpdateSelection()); _tracker.SetupGet(x => x.IsRunning).Returns(true); _operations = _factory.Create<ICommonOperations>(); _operations.SetupGet(x => x.TextView).Returns(_textView); _commandUtil = _factory.Create<ICommandUtil>(); var motionUtil = new MotionUtil(vimBufferData); var capture = new MotionCapture(vimBufferData, new IncrementalSearch(vimBufferData, _operations.Object)); var runner = new CommandRunner( _textView, Vim.RegisterMap, capture, _commandUtil.Object, (new Mock<IStatusUtil>()).Object, VisualKind.Character); _modeRaw = new VisualMode(vimBufferData, _operations.Object, motionUtil, kind, runner, capture, _tracker.Object); _mode = _modeRaw; _mode.OnEnter(ModeArgument.None); }
public void Create(params string[] lines) { _textView = Utils.EditorUtil.CreateView(lines); _buffer = _textView.TextBuffer; _settings = new Vim.GlobalSettings(); _utilRaw = new MotionUtil(_textView, _settings); _util = _utilRaw; }