Closed arpadbarta closed 2 months ago
@arpadbarta, what do you mean by "it fails with". Can you give more details here?
Have added some additional details above, but in short it seems that it fails to start the session, after which as expected there is no running session.
What is really odd, is that if I try to start it manually with is
command it switches to CMD prompt, exiting it returns to nu-shell.
A few more follow up questions.
is
or is -s nu
? If just is
, does is -s nu
work for you?nu
on your path, aka run Get-Command "nu.exe"
# ---------------- inshellisense shell plugin ----------------
if "ISTERM" not-in $env and $nu.is-interactive {
if $nu.is-login { is -s nu --login ; exit } else { is -s nu ; exit }
}
-V
and then send me your logfile? (it's located at ~/.inshellisense/inshellisense.log
)is
switches to CMD exiting it will go back to NuShellis -s nu
executes, gives the same message as above, even so it shows that I have a session somehow no suggestions are shown.@arpadbarta can I see your env.nu
file? I can't replicate your issue. Can you also uninstall inshellisense
from winget
and try using the npm installation, that's the only installation method I support
Have had a better look, I installed it via npm
and not winget
, sorry for the confusion.
I use what ever it generated when I installed it.
# Nushell Environment Config File
#
# version = "0.91.0"
def create_left_prompt [] {
let dir = match (do --ignore-shell-errors { $env.PWD | path relative-to $nu.home-path }) {
null => $env.PWD
'' => '~'
$relative_pwd => ([~ $relative_pwd] | path join)
}
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold })
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold })
let path_segment = $"($path_color)($dir)"
$path_segment | str replace --all (char path_sep) $"($separator_color)(char path_sep)($path_color)"
}
def create_right_prompt [] {
# create a right prompt in magenta with green separators and am/pm underlined
let time_segment = ([
(ansi reset)
(ansi magenta)
(date now | format date '%x %X') # try to respect user's locale
] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}")
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
(ansi rb)
($env.LAST_EXIT_CODE)
] | str join)
} else { "" }
([$last_exit_code, (char space), $time_segment] | str join)
}
# Use nushell functions to define your right and left prompt
$env.PROMPT_COMMAND = {|| create_left_prompt }
# FIXME: This default is not implemented in rust code as of 2023-09-08.
$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
# The prompt indicators are environmental variables that represent
# the state of the prompt
$env.PROMPT_INDICATOR = {|| "> " }
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
# Specifies how environment variables are:
# - converted from a string to a value on Nushell startup (from_string)
# - converted from a value back to a string when running external commands (to_string)
# Note: The conversions happen *after* config.nu is loaded
$env.ENV_CONVERSIONS = {
"PATH": {
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
}
"Path": {
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
}
}
# Directories to search for scripts when calling source or use
# The default for this is $nu.default-config-dir/scripts
$env.NU_LIB_DIRS = [
($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
]
# Directories to search for plugin binaries when calling register
# The default for this is $nu.default-config-dir/plugins
$env.NU_PLUGIN_DIRS = [
($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
]
Have had a better look, I installed it via
npm
and notwinget
, sorry for the confusion.I use what ever it generated when I installed it.
# Nushell Environment Config File # # version = "0.91.0" def create_left_prompt [] { let dir = match (do --ignore-shell-errors { $env.PWD | path relative-to $nu.home-path }) { null => $env.PWD '' => '~' $relative_pwd => ([~ $relative_pwd] | path join) } let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold }) let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold }) let path_segment = $"($path_color)($dir)" $path_segment | str replace --all (char path_sep) $"($separator_color)(char path_sep)($path_color)" } def create_right_prompt [] { # create a right prompt in magenta with green separators and am/pm underlined let time_segment = ([ (ansi reset) (ansi magenta) (date now | format date '%x %X') # try to respect user's locale ] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" | str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}") let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([ (ansi rb) ($env.LAST_EXIT_CODE) ] | str join) } else { "" } ([$last_exit_code, (char space), $time_segment] | str join) } # Use nushell functions to define your right and left prompt $env.PROMPT_COMMAND = {|| create_left_prompt } # FIXME: This default is not implemented in rust code as of 2023-09-08. $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt } # The prompt indicators are environmental variables that represent # the state of the prompt $env.PROMPT_INDICATOR = {|| "> " } $env.PROMPT_INDICATOR_VI_INSERT = {|| ": " } $env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " } $env.PROMPT_MULTILINE_INDICATOR = {|| "::: " } # Specifies how environment variables are: # - converted from a string to a value on Nushell startup (from_string) # - converted from a value back to a string when running external commands (to_string) # Note: The conversions happen *after* config.nu is loaded $env.ENV_CONVERSIONS = { "PATH": { from_string: { |s| $s | split row (char esep) | path expand --no-symlink } to_string: { |v| $v | path expand --no-symlink | str join (char esep) } } "Path": { from_string: { |s| $s | split row (char esep) | path expand --no-symlink } to_string: { |v| $v | path expand --no-symlink | str join (char esep) } } } # Directories to search for scripts when calling source or use # The default for this is $nu.default-config-dir/scripts $env.NU_LIB_DIRS = [ ($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts ] # Directories to search for plugin binaries when calling register # The default for this is $nu.default-config-dir/plugins $env.NU_PLUGIN_DIRS = [ ($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins ]
I don't see the shell plugin at the bottom of the file
It should end with the shell plugin if you've properly echoed it to the file, try using rg to find the file with the plugin, since you didn't echo it properly to the file you sent above. This should work once the plugin has been added.
# ---------------- inshellisense shell plugin ----------------
if "ISTERM" not-in $env and $nu.is-interactive {
if $nu.is-login { is -s nu --login ; exit } else { is -s nu ; exit }
}
Closing as this isn't an issue with the tool, but your setup
Describe the bug inshellisense fails to initialize in NuShell.
To Reproduce Steps to reproduce the behavior:
is -c
results ininshellisense session [not found]
Expected behavior inshellisense should work as described, as in other shells
Environment
is --version
: 0.0.1-rc.14Additional context Add any other context about the problem here.