clausreinke / typescript-tools

(repo no longer active) Tools related to the TypeScript language
Apache License 2.0
266 stars 29 forks source link

Can you please mark tss as executable? #23

Closed ttsiodras closed 10 years ago

ttsiodras commented 10 years ago

First of all, excellent work - your typescript tools work fine in my tests so far, thank you very much for the effort you spent building them.

Now, I have added this section in my .vimrc...

let $PATH .= ':' . $HOME . '/.vim/bundle/typescript-tools/bin'
au BufNewFile,BufRead *.ts call SetupTSEnviron()
function! SetupTSEnviron()
    setlocal filetype=typescript
    noremap <buffer> <F8> :set rtp+=$HOME/.vim/bundle/typescript-tools/<CR>:TSSstarthere<CR>
endfunction

This allows me to hit F8 when I have a TypeScript file open, and only then, spawn the relevant "node" instance with your tools on it. This means I don't have to wait for TSS unless I actually want to do auto-completion on the file that is currently open.

This, as you can see, depends on my adding of your tools "bin" folder to the vim-aware PATH env var - which means it depends on your "tss" being executable.

Can you please set it as such? As it is right now, I have "local modifications" in my pathogen mirror of your plugin (i.e. under .vim/bundle/typescript-tools/).

Also, do you see anything wrong with my approach? It seems to work fine, but let me know if this violates some principle you depend on.

Again, thanks for all your hard work building this.

clausreinke commented 10 years ago

The executable bit on bin/tss is already set for me when I clone the repo, so I cannot reproduce your issue.

I would add to rtp just once, not every time you hit F8. Apart from that, it doesn't look wrong.

I tend to use either a globally npm-installed tss (which is on PATH) or the local one via let g:TSS=["node","<path to tss.js>"].

ttsiodras commented 10 years ago

Weird - this is what happens when I checkout the repos in my Debian:

ttsiod@avalon ~/Downloads
$ mkdir b

ttsiod@avalon ~/Downloads
$ cd b

ttsiod@avalon ~/Downloads/b
$ git clone https://github.com/clausreinke/typescript-tools.git
Cloning into 'typescript-tools'...
remote: Counting objects: 482, done.
remote: Compressing objects: 100% (212/212), done.
remote: Total 482 (delta 318), reused 420 (delta 258)
Receiving objects: 100% (482/482), 1.31 MiB | 445.00 KiB/s, done.
Resolving deltas: 100% (318/318), done.
Checking connectivity... done

ttsiod@avalon ~/Downloads/b
$ ls -l typescript-tools/bin/
total 3836
drwxr-xr-x 2 ttsiod ttsiod    4096 Δεκ  17 16:23 ./
drwxr-xr-x 6 ttsiod ttsiod    4096 Δεκ  17 16:23 ../
-rw-r--r-- 1 ttsiod ttsiod      34 Δεκ  17 16:23 defaultLibs.d.ts
-rw-r--r-- 1 ttsiod ttsiod  508690 Δεκ  17 16:23 lib.d.ts
-rw-r--r-- 1 ttsiod ttsiod   30169 Δεκ  17 16:23 readline.js
-rw-r--r-- 1 ttsiod ttsiod      40 Δεκ  17 16:23 tss
-rw-r--r-- 1 ttsiod ttsiod 3358105 Δεκ  17 16:23 tss.js

As you can see, tss is not executable. Maybe I have to set something in my .gitconfig that you already have?

clausreinke commented 10 years ago

Found it. Apparently a combination of issues: msysgit (I'm on windows) can't map the execute bit to windows attributes, so it fakes them. So the shell part of msysgit pretends the file is executable (probably looking at the #!), but the git part thinks it isn't. So what I check in and what you check out look different from what I see.

for reference:

Will fix in next update.