basic non-intrusive stretch reminder in vscode. close #81

This commit is contained in:
2023-03-18 19:05:15 -06:00
parent 35e5e32dbc
commit 66f76ceaa8
9 changed files with 2254 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
bin/
*.vsix
node_modules/

View File

@@ -0,0 +1,6 @@
.vscode
bin/*.map
src
build.hxml
haxelib.json
test.sh

View File

@@ -0,0 +1,10 @@
# your-extension README
An extension made with kiss: https://github.com/NQNStudios/kisslang
## Features
## Extension Settings
## Known Issues
## Release Notes

View File

@@ -0,0 +1,10 @@
-lib kiss-vscode-api
-lib kiss
-cp src
-js bin/extension.js
-dce full
-D analyzer-optimize
-D js-es=6
-debug
Main
-cmd npx vsce package

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
{
"main": "bin/extension.js",
"name": "smart-stretch-reminder",
"description": "",
"repository": {
"url": "",
"type:": "git"
},
"homepage": "",
"categories": [],
"extensionPack": [],
"publisher": "",
"contributes": {
"configuration": {
"title": "smart-stretch-reminder",
"properties": {
"smart-stretch-reminder.secondsAfterLastEdit": {
"type": "number",
"default": 5,
"minimum": 0
},
"smart-stretch-reminder.stretchMessage": {
"type": "string",
"default": "Now might be a good time to stretch!"
},
"smart-stretch-reminder.minutesBetweenStretching": {
"type": "number",
"default": 20,
"minimum": 0
}
}
}
},
"engines": {
"vscode": "^1.4.0"
},
"devDependencies": {
"vsce": "^2.15.0"
},
"version": "0.0.0",
"activationEvents": [
"onStartupFinished"
],
"displayName": ""
}

View File

@@ -0,0 +1,11 @@
import kiss.Prelude;
import kiss.List;
import vscode.*;
import haxe.Timer;
using StringTools;
@:build(kiss.Kiss.build())
class Main {}

View File

@@ -0,0 +1,41 @@
(loadFrom "kiss-vscode-api" "src/Util.kiss")
(loadFrom "kiss-vscode-api" "src/KissUtil.kiss")
@(:expose "activate")
(function activate [:ExtensionContext context]
(printThroughInfoMessage)
(defConfiguration
:Float secondsAfterLastEdit
(object
default 5
minimum 0)
:Float minutesBetweenStretching
(object
default 20
minimum 0)
:String stretchMessage
(object
default "Now might be a good time to stretch!"))
(var &mut :Float lastCheck)
(var &mut :Float secSpentTyping 0)
(var &mut :Timer timer)
(Vscode.workspace.onDidChangeTextDocument ->_
{
(when lastCheck
(+= secSpentTyping (- (Timer.stamp) lastCheck)))
(set lastCheck (Timer.stamp))
(when timer
(timer.stop))
(set timer
(Timer.delay
->{
(+= secSpentTyping secondsAfterLastEdit)
(set lastCheck null)
(when (>= secSpentTyping (* 60 minutesBetweenStretching))
(set secSpentTyping 0)
(infoMessage stretchMessage (object modal true)))
}
(* 1000 secondsAfterLastEdit)))
}))

View File

@@ -0,0 +1,3 @@
#! /bin/bash
haxe build.hxml