Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hightlight on wrong location #60

Closed
kangho99 opened this issue Jun 1, 2019 · 6 comments
Closed

hightlight on wrong location #60

kangho99 opened this issue Jun 1, 2019 · 6 comments

Comments

@kangho99
Copy link

kangho99 commented Jun 1, 2019

screehshot

Like the image suggests, the issue is very straightforward.
Search result highlights wrong location on some cases.

It was a clean, first hyper install, and hyper-search was the first plugin installed.

@jaanauati
Copy link
Owner

Hi!,
I'm unable to reproduce this, I even tried w a new+fresh install but this error is not happening. Could u please share some details abt your setup?

  • operative system.
  • hyper version.
  • hyper config file

thank you!

@kangho99
Copy link
Author

kangho99 commented Jul 4, 2019

Of course, I should have included those in first place -
macOS Mojave 10.14.4,
Hyper 3.0.2 (stable),
hyper-search (0.2.2),
hyper-active-tab (0.0.2),
hyperpower (1.1.1),
hyper-dark-scrollbar (1.2.4),
and it's probably irrelevant, but the shell is zsh.

I got the same results just now, trying to find from results of 'ls' right after opening Hyper.

The copy of .hyper.js below.

// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.

module.exports = {
config: {
// choose either 'stable' for receiving highly polished,
// or 'canary' for less polished but more frequent updates
updateChannel: 'stable',

  // default font size in pixels for all tabs
  fontSize: 12,

  // font family with optional fallbacks
  fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

  // default font weight: 'normal' or 'bold'
  fontWeight: 'normal',

  // font weight for bold characters: 'normal' or 'bold'
  fontWeightBold: 'bold',

  // line height as a relative unit
  lineHeight: 1,

  // letter spacing as a relative unit
  letterSpacing: 0,

  // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
  cursorColor: 'rgba(224,224,32,0.8)',

  // terminal text color under BLOCK cursor
  cursorAccentColor: '#000',

  // `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
  cursorShape: 'BEAM',

  // set to `true` (without backticks and without quotes) for blinking cursor
  cursorBlink: true,

  // color of the text
  foregroundColor: '#fff',

  // terminal background color
  // opacity is only supported on macOS
  backgroundColor: 'rgba(32,32,32,0.5)',

  // terminal selection color
  selectionColor: 'rgba(248,28,229,0.3)',

  // border color (window, tabs)
  borderColor: '#333',

  // custom CSS to embed in the main window
  css: '',

  // custom CSS to embed in the terminal window
  termCSS: '',

  // if you're using a Linux setup which show native menus, set to false
  // default: `true` on Linux, `true` on Windows, ignored on macOS
  showHamburgerMenu: '',

  // set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
  // additionally, set to `'left'` if you want them on the left, like in Ubuntu
  // default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
  showWindowControls: '',

  // custom padding (CSS format, i.e.: `top right bottom left`)
  padding: '12px 14px',

  // the full list. if you're going to provide the full color palette,
  // including the 6 x 6 color cubes and the grayscale map, just provide
  // an array here instead of a color map object
  colors: {
    black: '#000000',
    red: '#ED4E45',
    green: '#4EE450',
    yellow: '#FFFF33',
    blue: '#668CFF',
    magenta: '#DE87DD',
    cyan: '#7BEAEA',
    white: '#CCCCCC',
    lightBlack: '#686868',
    lightRed: '#FD6F6B',
    lightGreen: '#67F86F',
    lightYellow: '#FFFA72',
    lightBlue: '#6A76FB',
    lightMagenta: '#FD7CFC',
    lightCyan: '#68FDFE',
    lightWhite: '#FFFFFF',
  },

  // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
  // if left empty, your system's login shell will be used by default
  //
  // Windows
  // - Make sure to use a full path if the binary name doesn't work
  // - Remove `--login` in shellArgs
  //
  // Bash on Windows
  // - Example: `C:\\Windows\\System32\\bash.exe`
  //
  // PowerShell on Windows
  // - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
  shell: '',

  // for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
  // by default `['--login']` will be used
  shellArgs: ['--login'],

  // for environment variables
  env: {},

  // set to `false` for no bell
  bell: 'SOUND',

  // if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
  copyOnSelect: false,

  // if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
  defaultSSHApp: true,

  // if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
  // selection is present (`true` by default on Windows and disables the context menu feature)
  quickEdit: false,

  // choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
  // or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
  // (inside tmux or vim with mouse mode enabled for example).
  macOptionSelectionMode: 'vertical',

  // URL to custom bell
  // bellSoundURL: 'http://example.com/bell.mp3',

  // Whether to use the WebGL renderer. Set it to false to use canvas-based
  // rendering (slower, but supports transparent backgrounds)
  webGLRenderer: true,

  // for advanced config flags please refer to https://hyper.is/#cfg

  // hyper-active-tab
  activeTab: {
    symbol: '⚡',
    color: 'yellow'
  }
},

// a list of plugins to fetch and install from npm
// format: [@org/]project[#version]
// examples:
//   `hyperpower`
//   `@company/project`
//   `project#1.0.1`
plugins: ["hyper-search", "hyper-active-tab", "hyperpower", "hyper-dark-scrollbar"],

// in development, you can create a directory under
// `~/.hyper_plugins/local/` and include it here
// to load it and avoid it being `npm install`ed
localPlugins: [],

keymaps: {
  // Example
  // 'window:devtools': 'cmd+alt+o',
},

};

@jaanauati
Copy link
Owner

@kangho99 thanks for the quick response, i'll be trying to reproduce the bug using your config in the following days.

@samuelyeungkc
Copy link
Contributor

samuelyeungkc commented Jul 15, 2019

the issue is in containers.js file inside the function getLine.
Current implementation does the following:

for (let charIdx = 0; charIdx < lineBuffer.length; charIdx++) {
line += lineBuffer.get(charIdx)[1];
}

when white space is encountered (eg. 'Download Document') the function would the string without the whitespace I'DownloadDocument'). I looked up the xterm.js documentation, there is a function called translateToString() for BufferLine. By directly returning the result from translateToString() the correct location is highlighted.

I have opened a PR to fix the issue #70

jaanauati added a commit to samuelyeungkc/hyper-search that referenced this issue Jul 17, 2019
@jaanauati
Copy link
Owner

#70 has been merged and published to npm (hyper-search@0.3.1).

@kangho99 please let us know if u still have issues.

Thank you @samuelyeungkc !!! 🍺

@kangho99
Copy link
Author

I don't see the issue after update. Thank you both for nice plugin and quick fix! @jaanauati @samuelyeungkc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants