Greasy Fork

Chinese/English vim/nvim documents jump

jump between online vim-English-document/vim-Chinese-document/nvim-document

// ==UserScript==
// @name Chinese/English vim/nvim documents jump
// @name:zh 中文/英文 vim/nvim 文档切换跳转
// @description jump between online vim-English-document/vim-Chinese-document/nvim-document
// @namespace Violentmonkey Scripts
// @match *://vimcdoc.sourceforge.net/doc/*
// @match *://vimdoc.sourceforge.net/htmldoc/*
// @match *://vimdoc.sourceforge.net/htmldoc/*
// @match *://neovim.io/doc/user/*
// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.js
// @grant none
// @run-at document-end
// @version 0.1
// ==/UserScript==

/*jshint esversion: 6 */
let currentURL = document.URL;

let documentBaseURL = {
  vim: 'http://vimdoc.sourceforge.net/htmldoc',
  cvim: 'http://vimcdoc.sourceforge.net/doc',
  nvim: 'https://neovim.io/doc/user'
};

let suffixURL = currentURL.split('/').pop();

// 创建新的元素
let otherDocuments = document.createElement('div');

otherDocuments.id = "otherLanguageDocuments";

for (let baseURL in documentBaseURL) {
  let oA = document.createElement('a');
  oA.innerHTML = baseURL;
  oA.href = `${documentBaseURL[baseURL]}/${suffixURL}`;
  //newDocumentURL[baseURL] = oA
  otherDocuments.appendChild(oA);
  otherDocuments.appendChild(document.createElement('br'));
}

let body = document.getElementsByTagName('body')[0];
body.appendChild(otherDocuments);
otherDocuments.style = `visibility:hidden`
//floatingDiv.css({position: 'fixed', bottom: bottom + 'px' , right: right + 'px'});


$(document).ready(function() {
  let objWindow = $(window);
  let floatingDiv = $('#otherLanguageDocuments');
  let repositionTimes = 0;
  $(window).scroll(
    setInterval(function() {
      if(repositionTimes < 100) {
        setPostion(floatingDiv);
        repositionTimes += 1;
      }
    }, 100)
  );

  $(window).mousemove(
    setInterval(function() {
      if(repositionTimes < 100) {
        setPostion(floatingDiv);
        repositionTimes += 1;
      }
    }, 100)
  );


});

function setPostion(ele) {
  let bottom = Math.round(ele.height() * 2);
  let right = Math.round(ele.width() * 2);
  ele.css({position: 'fixed', bottom: bottom + 'px', right: right + 'px', visibility: 'visible'});
}